【发布时间】:2018-07-10 20:24:30
【问题描述】:
我是 WinForms 的新手,希望在学习绘制数据点方面寻求帮助。
我有一个图表,我用这段代码初始化它:
public Form1()
{
InitializeComponent();
var _chartArea = chrtAdamHistory.ChartAreas[0];
var _chartSeries = chrtAdamHistory.Series[0];
var _currDateTime = DateTime.Now;
//Set X Axis Properties
_chartArea.AxisX.LabelStyle.Format = "HH:mm";
_chartArea.AxisX.IntervalType = DateTimeIntervalType.Minutes;
_chartArea.AxisX.Interval = 30;
_chartArea.AxisX.Minimum =
new DateTime(_currDateTime.Year, _currDateTime.Month, _currDateTime.Day, 0, 0, 0).ToOADate();
_chartArea.AxisX.Maximum =
new DateTime(_currDateTime.Year, _currDateTime.Month, _currDateTime.Day, _currDateTime.Hour,
_currDateTime.Minute, _currDateTime.Second).ToOADate();
//Set Y Axis Properties
_chartArea.AxisY.Minimum = 0;
_chartArea.AxisY.Maximum = 500;
_chartArea.AxisY.Interval = 50;
//Set Series Properties
_chartSeries.ChartType = SeriesChartType.Spline;
_chartSeries.XValueType = ChartValueType.Time;
_chartSeries.YValueType = ChartValueType.Int32;
}
图表将如下所示:
现在这就是我卡住的地方。当X Axis 是Time 时,我不知道如何添加数据点。谁能告诉我如何或指出正确的方向?
【问题讨论】:
-
由于最小值和最大值是作为双精度给出的,因此您还需要从日期时间计算双精度:
chrtAdamHistory.Series[0].Points.AddXY(timeValue.ToOADate(), intValue); -
请注意,这将位于图表的最末端,并且不会真正显示为样条线,至少需要两个点!请参阅我对卡米尔回答的其他评论!
-
我认为每个人都应该密切关注第一个半小时并回复任何 cmets 或答案。这不是网站的要求,而是寻求帮助的人的基本礼貌。不过,我倾向于在至少一天过去之前投反对票。 - 但也许这只是我,谁甚至不确定你的绰号有多礼貌,这让我想起了不愉快的画面。 (开个玩笑)
-
我强烈反对一般条款和网站规则。这直接来自帮助页面: 发布问题并回复反馈 发布后,将问题在浏览器中打开一会儿,看看是否有人参与。如果您错过了一条明显的信息,请准备好通过编辑您的问题以包含它来做出回应。如果有人发布答案,请准备好尝试并提供反馈! 但是,耐心也是必需的行为。所以我会妥协并删除一条评论,但不会删除其他评论;-)
-
@TaW 抱歉,如果我看起来不礼貌,我昨晚在晚餐前发布了这个,并想“我会给它一些时间,明天上班再回来看看。”无论如何,谢谢你的建议,我回家后会尝试这个并在这里发布更新。