【问题标题】:Oxyplot C# DateTimeAxis show point data in graphOxyplot C# DateTimeAxis 在图中显示点数据
【发布时间】:2015-10-01 19:16:58
【问题描述】:

如果我像这样用 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 没有显示正确的年份?

【问题讨论】:

  • 您的目标是什么平台(WPF、Xamarin、GTK 等)?

标签: c# oxyplot


【解决方案1】:

系列TrackerFormatString 属性似乎存在问题。用于格式化单击图形时显示的字符串。

有关其定义,请参阅 oxyplot 文档的 page 44, section 1.3.4

看起来它正在将字符串格式字符串 {Date:0.###} 按字面意思视为双精度,而不是用关联的属性填充它。

要获得正确的输出,请将fs.TrackerFormatString = "Year: {2:yyyy-MM-dd} X: {4:0.###}"; 添加到您的代码中。如果您想使用标准的 C# DateTime 格式字符串语法,可以对日期进行不同的格式设置。

This thread,对于找出未记录的设置特别有帮助。特别是以下是相关的,

tracker 格式字符串对于不同系列有一些变化(应该记录在案......也许会改进?),但它至少应该支持以下参数

{0} 系列的标题 {1} x 轴的标题 {2} x 值 {3} y 轴的标题 {4} y 值

请注意我如何使用上面的 {2} 和 {4} 分别获取 x 值和 y 值。

【讨论】:

  • 感谢您的回答,我将其余代码添加到原始帖子中。由于“此部分正在建设中”,我在您链接的文档上没有看到任何可以帮助我的信息。
  • 好的,我现在可以重新创建您的错误。我正在处理这个案子。
  • 谢谢你!如果我添加您的代码行一切正常!非常感谢您的帮助 :) 周末愉快
  • @WilliamDenman TrackerFormatString 是否适用于 Xamarin 表单?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多