【问题标题】:Marking points on a JFreeChart TimeSeries ChartJFreeChart TimeSeries 图表上的标记点
【发布时间】:2012-01-03 21:14:15
【问题描述】:

我有一个包含 2 个数据项的 JFreeChart TimeSeries 图表。
我需要在其中标记点。
例如,我需要它在特定时间显示该行的值是多少(实际上没有任何值并且 JFreeChart 创建了行)。
示例:

TimeSeries t=new TimeSeries("Test",Second.class);
Dataset.addSeries(t);

Calendar C=Calendar.getInstance();
t.add(new Second(C.getTime()), 100);

C.setTimeInMillis(C.setTimeInMillis+10*60*60*1000);
t.add(new Second(C.getTime()),200);


// Now I want Something like this psudo code
C.setTimeInMillis(C.setTimeInMillis-5*60*60*1000);
t.mark(new Second(C.getTime()));

如何通过域值在系列上标记点(因此应该自动计算范围值)?

谢谢

【问题讨论】:

    标签: java jfreechart point


    【解决方案1】:

    显示插值的一种方便方法是启用轴跟踪功能,如example 所示。

    chartPanel.setHorizontalAxisTrace(true);
    chartPanel.setVerticalAxisTrace(true);
    

    附录:另一种方法是将interpolated 值添加到数据集中并禁止显示它们的Shape,如here 所示。然后(未标记的)值将可用于工具提示生成器、标签生成器、图表鼠标侦听器等。

    【讨论】:

    • 您好,谢谢,但这仅有助于在轴本身上找到值,而我需要在两点之间的某个(正好 3 个)点上的精确值。
    • 您必须自己处理linear interpolation 才能将view 转换为model 坐标; drawXxxAxisTrace() 方法展示了如何获取 view 边界。
    猜你喜欢
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多