Java JFreeChart:工具提示停止旋转打印
我有一个基本的XYPlot和一个系列。 打印方向垂直时,工具提示工作正常。 当打印方向为水平时,工具提示根本不显示, 或者有时错误地使用错误的值Java JFreeChart:工具提示停止旋转打印,java,swing,jfreechart,Java,Swing,Jfreechart,我有一个基本的XYPlot和一个系列。 打印方向垂直时,工具提示工作正常。 当打印方向为水平时,工具提示根本不显示, 或者有时错误地使用错误的值 public class HorizontalPlotTooltip { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
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);
}
公共类水平绘图工具提示{
公共静态void main(字符串[]args){
JFrame=新JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
XYPlot=新的XYPlot();
plot.setOrientation(PlotOrientation.HORIZONTAL);
NumberAxis xAxis=新的NumberAxis(“x轴值”);
xAxis.setAutoRange(真);
xAxis.setAutoRangeIncludeZero(假);
xAxis.setinversed(真);
plot.setDomainAxis(xAxis);
NumberAxis yAxis=新的NumberAxis(“y轴值”);
yAxis.setAutoRange(真);
yAxis.SetAutoRangeIncludeZero(假);
plot.setRangeAxis(yAxis);
XylineandShaperEnder渲染器=新的XylineandShaperEnder(真、假);
StandardXYToolTipGenerator生成器=新的StandardXYToolTipGenerator(StandardXYZToolTipGenerator.DEFAULT_TOOL_TIP_格式,新的DecimalFormat(“#”)和新的DecimalFormat(“0.00”);
renderer.setBaseToolTipGenerator(生成器);
XYSeriesCollection数据集=新的XYSeriesCollection();
XYSeries系列=新的XYSeries(“值”);
对于(int i=0;i<2000;i++){
增加(i,数学sin(i/500.0));
}
dataset.addSeries(系列);
plot.setDataset(数据集);
plot.setRenderer(渲染器);
JFreeChart图表=新JFreeChart(“反向-水平绘图问题”,绘图);
ChartPanel ChartPanel=新的ChartPanel(图表);
//长时间延迟观察工具提示
chartPanel.setDismissDelay(100000);
frame.setPreferredSize(新尺寸(200700));
框架设置最小尺寸(新尺寸(200700));
frame.setLayout(新的BorderLayout());
frame.add(图表面板);
frame.setVisible(true);
}
当绘图为水平时,是否需要添加额外的代码以使工具提示具有正确的值?这是JFreeChart中的一个错误:
我将修复它,但首先必须评估哪些渲染器受到影响。修复程序在GitHub提交。该修复程序适用于我的GitHub版本。非常感谢。