我们在C#中画图表,经常会使用到chart这个控件。在进行添加数据时,横坐标可以是数值型的数据,如int、float等。也可以是datatime型的数据。
但是在使用datatime型数据做x坐标时,经常会发现只会显示到日期,即 年-月-日。
那么怎么显示精确到年-月-日 时:分:秒 格式呢?
答案很简单,只要设置下chart的chartArea里面的属性就行。即
chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "yyyy-MM-dd-HH:mm:ss";
就OK了
另外你有可能需要鼠标停留在chart1上曲线上某点上时,弹出该点的坐标。但此时直接获取的x点坐标很可能是一个double值,而不是datetime格式的,怎么办呢?
答:用DateTime.FromOADate(e.xValue); //括号内为你获取的点的横坐标
例码如下
private void chart_main_GetToolTipText(object sender, ToolTipEventArgs e)//这是chart的gettooltip事件的映射函数
{
if (e.HitTestResult.ChartElementType == ChartElementType.DataPoint)
{
int i = e.HitTestResult.PointIndex;
DataPoint dp = e.HitTestResult.Series.Points[i];
DateTime dt = DateTime.FromOADate(dp.XValue);//将double的xvalue转换为datetime形式
//分别显示x轴和y轴的数值,其中{1:F2},表示显示的是float类型,精确到小数点后2位。
e.Text = string.Format("时间:{0};数值:{1:F2} ", dt, dp.YValues[0]);
}
}