JFreeChart:工具提示停止处理旋转图
JFreeChart: tooltip stop working on rotated plot
我有一个基本的 XYPlot 和一个系列。
当绘图方向为垂直时,工具提示工作正常。
当绘图方向为水平时,工具提示根本不会出现,
或有时因错误的值而出错。
public class HorizontalPlotTooltip {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
XYPlot plot = new XYPlot();
plot.setOrientation(PlotOrientation.HORIZONTAL);
NumberAxis xAxis = new NumberAxis("x-axis value");
xAxis.setAutoRange(true);
xAxis.setAutoRangeIncludesZero(false);
xAxis.setInverted(true);
plot.setDomainAxis(xAxis);
NumberAxis yAxis = new NumberAxis("y-axis value");
yAxis.setAutoRange(true);
yAxis.setAutoRangeIncludesZero(false);
plot.setRangeAxis(yAxis);
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true,false);
StandardXYToolTipGenerator generator = new StandardXYToolTipGenerator(StandardXYZToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,new DecimalFormat("#"),new DecimalFormat("0.00"));
renderer.setBaseToolTipGenerator(generator);
XYSeriesCollection dataset = new XYSeriesCollection();
XYSeries series = new XYSeries("value");
for (int i=0; i < 2000; i++) {
series.add(i,Math.sin(i/500.0));
}
dataset.addSeries(series);
plot.setDataset(dataset);
plot.setRenderer(renderer);
JFreeChart chart = new JFreeChart("Inverted - Horizontal plot problem",plot);
ChartPanel chartPanel = new ChartPanel(chart);
// long dismiss delay to observe tooltip
chartPanel.setDismissDelay(100000);
frame.setPreferredSize(new Dimension(200,700));
frame.setMinimumSize(new Dimension(200,700));
frame.setLayout(new BorderLayout());
frame.add(chartPanel);
frame.setVisible(true);
}
当绘图是水平的时,是否需要添加额外的代码来使工具提示具有正确的值?
这是 JFreeChart 中的错误:
http://www.jfree.org/forum/viewtopic.php?f=3&t=117805
我会修复它,但首先必须评估受影响的渲染器。
我有一个基本的 XYPlot 和一个系列。 当绘图方向为垂直时,工具提示工作正常。 当绘图方向为水平时,工具提示根本不会出现, 或有时因错误的值而出错。
public class HorizontalPlotTooltip {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
XYPlot plot = new XYPlot();
plot.setOrientation(PlotOrientation.HORIZONTAL);
NumberAxis xAxis = new NumberAxis("x-axis value");
xAxis.setAutoRange(true);
xAxis.setAutoRangeIncludesZero(false);
xAxis.setInverted(true);
plot.setDomainAxis(xAxis);
NumberAxis yAxis = new NumberAxis("y-axis value");
yAxis.setAutoRange(true);
yAxis.setAutoRangeIncludesZero(false);
plot.setRangeAxis(yAxis);
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true,false);
StandardXYToolTipGenerator generator = new StandardXYToolTipGenerator(StandardXYZToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,new DecimalFormat("#"),new DecimalFormat("0.00"));
renderer.setBaseToolTipGenerator(generator);
XYSeriesCollection dataset = new XYSeriesCollection();
XYSeries series = new XYSeries("value");
for (int i=0; i < 2000; i++) {
series.add(i,Math.sin(i/500.0));
}
dataset.addSeries(series);
plot.setDataset(dataset);
plot.setRenderer(renderer);
JFreeChart chart = new JFreeChart("Inverted - Horizontal plot problem",plot);
ChartPanel chartPanel = new ChartPanel(chart);
// long dismiss delay to observe tooltip
chartPanel.setDismissDelay(100000);
frame.setPreferredSize(new Dimension(200,700));
frame.setMinimumSize(new Dimension(200,700));
frame.setLayout(new BorderLayout());
frame.add(chartPanel);
frame.setVisible(true);
}
当绘图是水平的时,是否需要添加额外的代码来使工具提示具有正确的值?
这是 JFreeChart 中的错误:
http://www.jfree.org/forum/viewtopic.php?f=3&t=117805
我会修复它,但首先必须评估受影响的渲染器。