【问题标题】:Setting X axis start to first value in first series, Chart control将 X 轴开始设置为第一个系列中的第一个值,图表控件
【发布时间】:2016-07-28 18:05:02
【问题描述】:

我在 Windows 窗体上有一个图表控件,最近将我为 x 轴添加的数据从表示日期的字符串更改为日期时间类型。

在更改之前,我将最小 X 轴设置为 1,以便线条从 Y 轴开始,现在我使用的日期我不能这样做!

有没有一种简单的方法可以始终在图表控件的 Y 轴上开始一条线?

这是我正在做的以及我现在正在尝试的:

chart2.ChartAreas[0].AxisX.Minimum = 1;

然后将数据添加到图表中:

seriesAve.Points.AddXY(strDate, average); //StrDate is a string, average is a double.

我现在这样做:

seriesAve.Points.AddXY(dt.Date, average);
DateTime tpdate = dateTimePicker1.Value;

// results in cannot convert datetime to double. 
chart2.ChartAreas[0].AxisX.Minimum = tpdate.Date; 

【问题讨论】:

    标签: c# winforms charts


    【解决方案1】:

    Chart 中的所有 X 和 Y 值都存储为 doubles

    当添加一个值为DateTime 时,它会使用ToOADate 转换函数隐式转换为double。

    因此,当您需要设置像MinimumMaximum 等值时,您需要在代码中调用此函数:

    chart2.ChartAreas[0].AxisX.Minimum = tpdate.Date.ToOADate(); 
    

    要将其转换回DateTime,请使用DateTime.FromOADate 函数:

     DateTime tpdate = DateTime.FromOADate( chart2.ChartAreas[0].AxisX.Minimum);
    

    【讨论】:

    • 谢谢@TaW 我一直在绕圈子,它解决了我的问题,非常感谢......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多