我需要在图表中设置最小 X 刻度间隔。我有一个包含 1000 个条目的数据集,即 <0,12>,<5,22>,<10,23>,...,<1000,20>
。在数据集中,X 值之间的间隔等于 5。在图表中,我想将 X 刻度间隔设置为 100。
我使用此代码,但它不起作用:
NumberAxis range = (NumberAxis)plot.getRangeAxis();
range.setTickUnit(new NumberTickUnit(100));
这是我的代码片段:
private JFreeChart createChart(CategoryDataset dataset)
{
final JFreeChart chart = ChartFactory.createAreaChart(
this.title,
"Time",
"Net demand",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false
);
Title t = new TextTitle(this.subtitle);
chart.addSubtitle(t);
int transparency = 95;
Color c = new Color(1, 158, 115, transparency);
final CategoryPlot plot = chart.getCategoryPlot();
CategoryItemRenderer renderer = new CustomRenderer(c);
renderer.setSeriesOutlinePaint(0, Color.black);
renderer.setSeriesOutlineStroke(0, new BasicStroke(0.5f));
renderer.setSeriesPaint(0,c);
plot.setRenderer(renderer);
NumberAxis range = (NumberAxis)plot.getRangeAxis();
range.setTickUnit(new NumberTickUnit(60));
return chart;
}
最佳答案
您已经设置了范围轴的刻度单位,即 JFreeChart 中的 y 轴。对于 x 轴,您需要域轴。
NumberAxis xAxis = (NumberAxis) plot.getDomainAxis();
xAxis.setTickUnit(new NumberTickUnit(60));
域和范围术语来自将一组域值映射到一组范围值的函数。事后看来,使用 getXAxis() 和 getYAxis() 作为方法名称对于大多数人来说会更清楚......对于 JFreeChart 2 我可能会更改它。
关于java - JFreeChart:设置图表中的最小 X 刻度间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22248136/