RangeColumn图表如何将两个Y值的差值设置为DataPoint标签
RangeColumn图表双Y值差值标签设置解决方案
问题原因
你之前的两种写法都存在逻辑问题:
- 第一种写法中,你预先创建了
DataPoint对象并设置了标签,但后续调用AddXY方法时会自动生成新的数据点,之前创建并配置好的DataPoint并没有被添加到序列中,标签配置自然不生效。 - 第二种写法的标签表达式仅做字符串拼接,图表控件不会自动识别
#VALY2-#VALY1为算术表达式,只会原样输出文本,不会计算差值。
解决方案
方案1:手动计算差值配置标签
修正数据点添加逻辑,直接添加你已经配置好的DataPoint对象即可:
DataPoint p = new DataPoint(); p.SetValueXY(d.Date, prev, prev + biggerResult.Count); p.Label = biggerResult.Count.ToString(); // 直接添加已配置的点,不要调用AddXY生成新点 s_AC_Checked.Points.Add(p);
如果习惯用AddXY方法,也可以在添加后为新生成的点赋值标签:
s_AC_Checked.Points.AddXY(d.Date, prev, prev + biggerResult.Count); // 取最后添加的点设置差值标签 s_AC_Checked.Points.Last().Label = biggerResult.Count.ToString();
方案2:使用内置计算表达式自动生成标签
无需逐个点手动计算,直接给序列配置带计算逻辑的标签表达式即可,控件会自动计算两个Y值的差值:
// #CALC包裹的表达式会被控件自动计算,这里直接取Y2减Y1的结果作为标签 s_AC_Checked.Label = "#CALC(Y2 - Y1)";
效果参考

内容的提问来源于stack exchange,提问作者mgx
相关产品推荐
相关产品推荐

