我正在尝试绘制从excel文件中获取并保存到烛台图表数组中的一些示例数据。我正在尝试的数据(如果有帮助的话)是一个外汇对(EUR / GBP比率),在外汇中,对报价用小数点后4位表示。
问题在于蜡烛的主体在图表上不可见,正如我在下图中所期望的那样(图像只是一个随机示例)。 example candlestick chart
我的蜡烛散布着几乎没有可见物体的线条。
Y轴的最小值和最大值默认设置为0和1,因此在逻辑上我假设间隔是问题所在(我的样本数据大约为0.8500 min和0.9500 max),所以很自然地才能看到蜡烛体我试图减小最小和最大间隔,以便查看任何蜡烛主体,但这仅导致图表绘制空白,而在此处没有任何显示。 blank candle chart
只是为了测试周围的事物,我要绘制15个点。
要绘制那15个点
if (i < 15)
{
chart1.Series["Series1"].Points.AddXY(i, 0, 0, Open[i], Close[i]);
}
绘图功能采用5个参数,arg1日期,arg2蜡烛低,arg3蜡烛高,arg4蜡烛开盘价,arg5蜡烛收盘价。
如果我有两支蜡烛,收盘价分别为0.8532和0.8539,开盘价分别为0.8530和0.8537,我应该已经看到这样的蜡烛主体 Expcted candle body
我唯一要尝试的是Y最小值和最大值,但没有解决方案,并且Y轴scaleview属性再次没有解决方案。
我最后想到的是让图表将小数点后4位作为绘制数据的主要值(我不知道该如何理解),有意义从右到左如果这是合理的。
有什么想念的吗?
我该怎么做才能正确看到蜡烛的身体?
为什么当我减小Y轴值间隔时我的图表变成空白。
在此先感谢您的任何建议。
答案 0 :(得分:0)
这一切都取决于数据中的数字。
自动轴缩放将允许显示所有值。
当高/低为0/0或0/1时,它需要显示的范围从0到0.8539或从0到1。
但是身体只有从0.8530到0.8532。
因此,主体约为轴范围的2/1000。要使其显示,您将需要一个较大的图表高度。
请确保在数据中设置适当的值,并通过设置“最小/最大”值来帮助图表。
var ca = chart1.ChartAreas[0];
ca.AxisY.Minimum = 0.8500;
ca.AxisY.Maximum = 0.8570;
chart1.Series["Series1"].Points.Clear();
chart1.Series["Series1"].Points.AddXY(2, 0.8532, 0.8530, 0.8532, 0.8530);
结果: