Oxyplot C# DateTimeAxis 在图表中显示点数据
Oxyplot C# DateTimeAxis show point data in graph
如果我像这样使用 C# 创建 DateTimeAxis:
DateTimeAxis xAxis = new DateTimeAxis
{
Position = AxisPosition.Bottom,
StringFormat = "dd/MM/yyyy",
Title = "Year",
MinorIntervalType = DateTimeIntervalType.Days,
IntervalType = DateTimeIntervalType.Days,
MajorGridlineStyle = LineStyle.Solid,
MinorGridlineStyle = LineStyle.None,
};
FunctionSeries fs = new FunctionSeries();
fs.Points.Add(new DataPoint(DateTimeAxis.ToDouble(DateTime.Now), 5));
fs.Points.Add(new DataPoint(DateTimeAxis.ToDouble(new DateTime(1989, 10, 3)), 8));
PlotModel n = new PlotModel();
n.Series.Add(fs);
n.Axes.Add(xAxis);
n.Axes.Add(new LinearAxis());
pv.Model = n;
图表上的一切都很好,但如果我按下该点,我会得到这些数据作为标签:
年份:0.####
X: 6.2523
所以 X 信息是正确的,但我不知道为什么 oxyplot 没有显示正确的年份?
似乎系列 TrackerFormatString
属性 有问题。用于格式化单击图表时显示的字符串。
有关其定义,请参阅 oxyplot 文档的 page 44, section 1.3.4。
它看起来像是将字符串格式字符串 {Date:0.###}
按字面意思处理为双精度而不是用关联的 属性.
填充它
要获得正确的输出,请将 fs.TrackerFormatString = "Year: {2:yyyy-MM-dd} X: {4:0.###}";
添加到您的代码中。如果您想使用标准的 C# DateTime 格式字符串语法,您可以设置不同的日期格式。
This thread,对于找出未记录的设置特别有帮助。特别是以下内容是相关的,
The tracker format string has some variations for different series (should be documented... and maybe improved?), but it should at least support the following arguments
{0} the title of the series
{1} the title of the x-axis
{2} the x-value
{3} the title of the y-axis
{4} the y-value
请注意我是如何使用上面的 {2} 和 {4} 分别获取 x 值和 y 值的。
如果我像这样使用 C# 创建 DateTimeAxis:
DateTimeAxis xAxis = new DateTimeAxis
{
Position = AxisPosition.Bottom,
StringFormat = "dd/MM/yyyy",
Title = "Year",
MinorIntervalType = DateTimeIntervalType.Days,
IntervalType = DateTimeIntervalType.Days,
MajorGridlineStyle = LineStyle.Solid,
MinorGridlineStyle = LineStyle.None,
};
FunctionSeries fs = new FunctionSeries();
fs.Points.Add(new DataPoint(DateTimeAxis.ToDouble(DateTime.Now), 5));
fs.Points.Add(new DataPoint(DateTimeAxis.ToDouble(new DateTime(1989, 10, 3)), 8));
PlotModel n = new PlotModel();
n.Series.Add(fs);
n.Axes.Add(xAxis);
n.Axes.Add(new LinearAxis());
pv.Model = n;
图表上的一切都很好,但如果我按下该点,我会得到这些数据作为标签:
年份:0.#### X: 6.2523
所以 X 信息是正确的,但我不知道为什么 oxyplot 没有显示正确的年份?
似乎系列 TrackerFormatString
属性 有问题。用于格式化单击图表时显示的字符串。
有关其定义,请参阅 oxyplot 文档的 page 44, section 1.3.4。
它看起来像是将字符串格式字符串 {Date:0.###}
按字面意思处理为双精度而不是用关联的 属性.
要获得正确的输出,请将 fs.TrackerFormatString = "Year: {2:yyyy-MM-dd} X: {4:0.###}";
添加到您的代码中。如果您想使用标准的 C# DateTime 格式字符串语法,您可以设置不同的日期格式。
This thread,对于找出未记录的设置特别有帮助。特别是以下内容是相关的,
The tracker format string has some variations for different series (should be documented... and maybe improved?), but it should at least support the following arguments
{0} the title of the series {1} the title of the x-axis {2} the x-value {3} the title of the y-axis {4} the y-value
请注意我是如何使用上面的 {2} 和 {4} 分别获取 x 值和 y 值的。