java - JFreeChart:设置图表中的最小 X 刻度间隔

标签 java jfreechart

我需要在图表中设置最小 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/

相关文章:

java - 我怎样才能得到一个 RejectedExecutionException

java - 将图片放在 JScrollPane 和 JTable 的背景中

java - JFreeChart 中是否可以有两个(X 和 Y)CategoryAxes?

java - 如何将 jfree 图表作为小程序运行?

java - 绘制一个 block ,而不是 jfreechart 中的一个点

java : string index out of range

c# - 什么是统一类型系统?

java - 正则表达式在 Java 中第一次出现时停止

java - 在 jfreechart 中定位数据点标签

java - Tapestry动态生成图像