我使用范围mschart绘制一些数据。 Y轴表示时间(总共24小时)。图表正确绘制数据,但 y轴不是从0小时开始。
代码
var IETable = (dt as System.ComponentModel.IListSource).GetList();
chChart.DataBindCrossTable(IETable, "Number", "", "Start,Finish", "");
foreach (Series sr in chChart.Series)
{
sr.ChartType = SeriesChartType.RangeBar;
sr.YValueType = ChartValueType.Time;
}
chChart.ChartAreas[0].AxisY.LabelStyle.Format = "h : tt";
chChart.ChartAreas[0].AxisY.Interval = 2;
chChart.ChartAreas[0].AxisY.IntervalType = DateTimeIntervalType.Hours;
chChart.ChartAreas[0].AxisY.IntervalOffset = 0;
chChart.ChartAreas[0].AxisY.IsMarksNextToAxis = true;
chChart.ChartAreas[0].AxisY.IsStartedFromZero = true;
我也尝试过AxisY.Minimum = 0和AxisY.Maximum = 1。这将从0开始Y轴,但之后绘图不可见。
答案 0 :(得分:1)
DateTime minDate = new DateTime(0, 0, 0, 0, 0, 0);
DateTime maxDate = minDate.AddHours(24);
chChart.ChartAreas[0].AxisY.Minimum = minDate.ToOADate();
chChart.ChartAreas[0].AxisY.Maximum = maxDate.ToOADate();
试试这个。您可能需要更改新的DateTime(0,0,0,0,0,0); 以适合您添加内容的年份和月份等。可能的解决方案是使用 DateTime.Now 获取 minDate 并减去小时,分钟和秒数
答案 1 :(得分:0)
将TextBox值转换为datetime就可以了。
DateTime minDate =Convert.ToDateTime(tbDate.Text);
DateTime maxDate = minDate.AddDays(1);
chChart.ChartAreas[0].AxisY.Minimum = minDate.ToOADate();
chChart.ChartAreas[0].AxisY.Maximum = maxDate.ToOADate();