我尝试使用以下参数初始化C#中的图表轴:
chart1.ChartAreas[0].AxisX.Maximum = 20;
chart1.ChartAreas[0].AxisX.Minimum = 0;
chart1.ChartAreas[0].AxisX.Interval = 5;
System.DateTime x1 = new System.DateTime(2016, 6, 8, 12, 00, 00);
System.DateTime x2 = new System.DateTime(2016, 6, 8, 23, 00, 00);
chart1.ChartAreas[0].AxisY.Maximum = x2.ToOADate();
chart1.ChartAreas[0].AxisY.Minimum = x1.ToOADate();
运行上述代码后,我尝试使用以下方法向图表添加一些数据:
DateTime x = DateTime.Now;
chart1.Series[0].Points.AddXY(i,x.ToOADate());
(其中我在后续数据添加时增加)
但是,只要我初始化两个轴,图表就不会显示任何数据。
如果我没有设置Y轴最小值和最大值,那么它会成功显示以下图表。
如何初始化两个轴并继续在图表中绘制数据?
谢谢!
-----更新1 -----
它现在正在工作。做出的改变: 在设计器视图中,对于图表的属性,Charting / Series / YValueType已更改为DateTime。之前只有时间。
谢谢!
答案 0 :(得分:0)
我尝试了以下代码, 我将图表控件,按钮和计时器放在表格中。
DateTime minValue, maxValue;
int i = 0;
public Form6()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
chart1.ChartAreas[0].AxisY.LabelStyle.Format = "HH:mm:ss";
minValue = DateTime.Now;
maxValue = minValue.AddSeconds(60);
chart1.ChartAreas[0].AxisX.Maximum = 20;
chart1.ChartAreas[0].AxisX.Minimum = 0;
chart1.ChartAreas[0].AxisX.Interval = 5;
System.DateTime x1 = new System.DateTime(2016, 6, 8, 12, 00, 00);
System.DateTime x2 = new System.DateTime(2016, 6, 8, 23, 00, 00);
chart1.ChartAreas[0].AxisY.Maximum = x2.ToOADate();
chart1.ChartAreas[0].AxisY.Minimum = x1.ToOADate();
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
DateTime x = DateTime.Now;
chart1.Series[0].Points.AddXY(i, x.ToOADate());
i++;
}