繁体   English   中英

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属性存在问题。 用于格式化单击图表时显示的字符串。

有关其定义请参见氧标图文档的第44页第1.3.4节

看起来它将字符串格式字符串{Date:0.###}字面上视为double,而不是使用关联属性填充它。

要获得正确的输出,请添加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值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM