JfreeChart轴自定义精度或范围



我正在尝试使用JfreeChart绘制XYPlot。我的X轴有数字或客户,比如30、50、70并且Y轴具有缓存命中率(其值有时变化0.01(当我设置AutoRange时,Y轴显示范围为0.1 0.2 0.3…..1.0。所以有时候我的情节几乎是直线的,因为它会因一个很小的因素而变化。

我试过这个代码

             JFreeChart chart = ChartFactory.createXYLineChart(
             "Effect of Number of Clients", // Title
             "Number of Clients", // x-axis Label
             "Cache Hit Ratio", // y-axis Label
             datasetLRU, // Dataset
             PlotOrientation.VERTICAL, // Plot Orientation
             true, // Show Legend
             true, // Use tooltips
             false // Configure chart to generate URLs?
             );
             chart.setBackgroundPaint(Color.white);
             plot= chart.getXYPlot();
             plot.setBackgroundPaint(Color.black);
             plot.setDomainGridlinePaint(Color.white);
             plot.setRangeGridlinePaint(Color.white);
             final ValueAxis axis = plot.getDomainAxis();
             axis.setAutoRange(false);
             final NumberAxis axis2 = new NumberAxis("Axis 2");
             axis2.setAutoRangeIncludesZero(false);
             axis2.setTickUnit(new NumberTickUnit(0.01));
             plot.setDataset(1, datasetMARS);
             plot.setRenderer(1, new StandardXYItemRenderer());
             plot.setDataset(2, datasetNEW);
             plot.setRenderer(2, new StandardXYItemRenderer());

因此,任何人都可以帮助将Y轴范围设置为0.01 0.02 0.03…0.98 0.99 1.00吗感谢

您的代码不配置范围轴,因为您创建了axis2,但从未分配它。使用自动范围时,您还可以配置自动范围轴的最小大小(方法setAutoRangeMinimumSize(double((。

请尝试以下源代码部分:

final NumberAxis axis2 = plot.getRangeAxis();
axis2.setAutoRange(true);
axis2.setAutoRangeIncludesZero(false);
axis2.setAutoRangeMinimumSize(0.001);
axis2.setTickUnit(new NumberTickUnit(0.01));

相关内容

  • 没有找到相关文章

最新更新