我创建了一个堆积条形图,其中在y轴上显示计数,在x轴上显示日期。问题是当我在x轴上有很多日期时,它会变得非常混乱且无法阅读。我想只显示一些日期,例如每周一个日期。那可能吗?我正在使用ChartFactory.createStackedBarChart()
创建图表,并且我将数据保存在DefaultCategoryDataSet
.
任何输入表示赞赏!
我创建了一个堆积条形图,其中在y轴上显示计数,在x轴上显示日期。问题是当我在x轴上有很多日期时,它会变得非常混乱且无法阅读。我想只显示一些日期,例如每周一个日期。那可能吗?我正在使用ChartFactory.createStackedBarChart()
创建图表,并且我将数据保存在DefaultCategoryDataSet
.
任何输入表示赞赏!
对于在 aCategoryAxis
中用于域轴的 a StackedBarChart
,您可以使用该方法具有相当大的灵活性setCategoryLabelPositions()
。BarChartDemo1
源代码中说明了典型用法,此处显示。
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(
CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
您是否尝试过覆盖标签生成器中的 generateLabel 方法?就像是:
chart.getCategoryPlot().getRenderer().setBaseItemLabelGenerator(
new CategoryItemLabelGenerator() {
public String generateColumnLabel(CategoryDataset dataset, Integer column) {
if(column % 7 == 0)
super.generateColumnLabel(dataset, column)
else
""
}
}
);
我没有测试过代码,但它应该只每 7 列输出一个标签。关于标签生成器的更多信息在这里:http ://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/labels/CategoryItemLabelGenerator.html