问题描述
数据已经有了,Y轴也没什么问题现在我希望X轴是固定时间,比如原点是2011-11-01 00:00:00,然后每五分钟在X轴上有一个点我的数据点分布在X轴上,可能某个五分钟比较密集,某个五分钟比较稀疏visifire能做到吗? 问题补充:283433775 写道
解决方案
可以做到,给你个参考代码: public void CreateChart(string tableName, List<DateTime> updateTime, List<object> valueList, string rihgtStr, int chartInterval, IntervalTypes intervaltype) { Chart chart = new Chart(); //创建一个图表 /* 设置图表属性 */ chart.Width = 500; chart.Height = 400; chart.ToolBarEnabled = true; chart.ScrollingEnabled = false; chart.View3D = true; Title title = new Title() { Text = tableName, Padding = new Thickness(0, 10, 5, 0) }; //图表标题 chart.Titles.Add(title); //添加标题 Axis xAxis = new Axis(); //创建X轴 xAxis.IntervalType = intervaltype; //X轴分类类型, 小时*分*秒 xAxis.Interval = chartInterval; //X轴坐标间隔距离 xAxis.ValueFormatString = "hh:mm:ss"; //X轴时间显示格式 chart.AxesX.Add(xAxis); //为图表添加X轴 Axis yAxis = new Axis(); //创建Y轴 yAxis.Suffix = rihgtStr; //Y轴后缀% yAxis.AxisMinimum = 0; //Y轴最小值为0 chart.AxesY.Add(yAxis); //为图表添加Y轴 for (int i = 0; i < valueList.Count; i++) { DataSeries dataSeries = new DataSeries(); //创建数据线 dataSeries.RenderAs = RenderAs.Line; // 数据线显示类型为线型 dataSeries.XValueType = ChartValueTypes.DateTime; //设置X轴的类型为日期类型 List<string> value = (List<string>)valueList[i]; for (int j = 0; j < updateTime.Count; j++) { DataPoint dataPoint = new DataPoint(); //创建数据点 dataPoint.XValue = updateTime[j]; //设置数据点X轴的值; dataPoint.YValue = double.Parse(value[j]); //设置Y轴值 dataPoint.MarkerSize = 8; //设置数据点的大小 dataPoint.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown); //数据点的鼠标单击事件 dataSeries.DataPoints.Add(dataPoint); //为数据线添加数据点 } chart.Series.Add(dataSeries); //为图表添加数据线 } LayoutRoot.Children.Add(chart); }