JFreeChart:使用CategoryAxis时,域轴的放大不起作用

时间:2012-06-26 13:06:37

标签: java jfreechart

我使用jfreechart库绘制系列图表。我在y轴上取值,在x轴上取时间,在3个类别上取系列。一切都很好,但我无法放大域轴虽然它对范围轴工作正常。这可能吗?

以下代码行可以帮助您找到我的代码的一些场景:

final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setDomainZoomable(true);
chartPanel.setRangeZoomable(true);
this.add(chartPanel, BorderLayout.CENTER);

//set plot specifications 
final CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(new Color(0xffffe0));
plot.setDomainGridlinesVisible(true);
plot.setDomainGridlinePaint(Color.lightGray);
plot.setRangeGridlinePaint(Color.lightGray);

//CUSTOMIZE DOMAIN AXIS
final CategoryAxis domainAxis = (CategoryAxis) plot.getDomainAxis();

//customize domain label position
domainAxis.setCategoryLabelPositions(
       CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0)
);

1 个答案:

答案 0 :(得分:1)

看起来您使用的CategoryPlot不支持域范围内的动物园

enter image description here

如果使用图表工厂,允许缩放域轴切换到XYPlot,代码为

JFreeChart chart = ChartFactory.createXYLineChart(...);

如果你能够将情节投射到CategoryPlot,那么事情就出错了。我已检查LineChartDemo3,此代码导致错误(java.lang.ClassCastException):

try {
        final CategoryPlot cplot = (CategoryPlot) chart.getPlot();
    } catch (Exception e) {
        e.printStackTrace();
    }