如果我像这样用 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;
Run Code Online (Sandbox Code Playgroud)
图表上的一切都很好,但是如果我按下该点,我会将此数据作为标签:
年份:0.#### X:6.2523
所以 X 信息是正确的,但我不知道为什么 oxyplot 没有显示正确的年份?
系列属性似乎有问题TrackerFormatString。它用于格式化单击图表时显示的字符串。
有关其定义,请参阅oxyplot 文档第 44 页第 1.3.4 节。
看起来它{Date:0.###}实际上将字符串格式字符串视为双精度,而不是用关联的属性填充它。
要获得正确的输出,请添加fs.TrackerFormatString = "Year: {2:yyyy-MM-dd} X: {4:0.###}";到您的代码中。如果您想使用标准 C# DateTime 格式字符串语法,则可以以不同方式设置日期格式。
该线程对于找出未记录的设置特别有帮助。特别是以下内容是相关的,
跟踪器格式字符串对于不同系列有一些变化(应该记录......并且可能改进?),但它至少应该支持以下参数
{0} 系列标题 {1} x 轴标题 {2} x 值 {3} y 轴标题 {4} y 值
请注意我如何使用上面的 {2} 和 {4} 分别获取 x 值和 y 值。
| 归档时间: |
|
| 查看次数: |
6615 次 |
| 最近记录: |