我使用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)
);
答案 0 :(得分:1)
看起来您使用的CategoryPlot
不支持域范围内的动物园
如果使用图表工厂,允许缩放域轴切换到XYPlot
,代码为
JFreeChart chart = ChartFactory.createXYLineChart(...);
如果你能够将情节投射到CategoryPlot
,那么事情就出错了。我已检查LineChartDemo3
,此代码导致错误(java.lang.ClassCastException
):
try {
final CategoryPlot cplot = (CategoryPlot) chart.getPlot();
} catch (Exception e) {
e.printStackTrace();
}