【发布时间】:2019-08-27 06:08:55
【问题描述】:
我正在使用 oxyplot(C#,Windows 窗体)来绘制实验的日志文件。用户可以在测试过程中输入 cmets,这些 cmets 与文本和时间戳一起保存,并应与数据一起显示在图中。起初我尝试使用 TextAnnotations,但 cmets 可能比注释允许的更冗长和频繁。
我的解决方案是制作一个 ScatterPlot 并让 cmets 成为单个数据点,然后当鼠标悬停在 Tracker 上时显示时间戳和评论文本。现在,我无法显示文本。
我为我的数据点创建了一个新类来保存文本,ScatterSeries 将接受该类:
public class CommentPoint : IScatterPointProvider
{
public CommentPoint(double x, double y, string text)
{
X = x; Y = y; Text = text;
}
public double X, Y;
public string Text;
public ScatterPoint GetScatterPoint()
{
return new ScatterPoint(X, Y);
}
}
然后,我尝试修改 TrackerFormatString 使其显示文本:
Series.TrackerFormatString = "{2}\n{Text}";
但是当悬停在数据点上时,跟踪器只显示时间戳,而不是文本。我之前可以通过显示自定义数字来完成这项工作,但我不知道是否可以使用字符串。
这是与不同系列一起使用的:
Series.TrackerFormatString = "{0}\n{2}\n{Scale:#.00 " + unit + "}";
其中“Scale”是我想要显示的自定义属性。所以我想问题是,我需要添加到 {Text} 以使其工作/是否可以在跟踪器中显示文本?
编辑:我忘了补充,我的紧急解决方案是将 cmets 保存在 ScatterSeries 的标题中,并为每条评论创建一个新系列,但如果可能的话我想避免这种情况。
【问题讨论】: