java - 使用 JFreechart 调整适合另一个轴的大小

标签 java plot jfreechart

我正在尝试制作一个重叠图, 我的问题是我无法使第二个图适合第二个图。 这是我的第一个情节: enter image description here

这是第二个: enter image description here

当我尝试同时适应两者时,这就是我得到的:

enter image description here

所以基本上,我想将整个第二个图拟合在 0 到 30 之间,我怎样才能做到这一点而不丢失任何数据

首先我尝试使用plot.mapDatasetToRangeAxis()

然后我尝试了:

 domain.setRange(0.00, 30.0);
 domain.setTickUnit(new NumberTickUnit(1)); 

但是我无法使第一个和第二个都按我的意愿工作。 你还有其他建议吗? (除了购买 this - 作为学生我现在买不起)。 任何帮助将不胜感激:)

哦,顺便说一句,x 轴是速度(忘记将其绘制在绘图上)。

所以这是我想要的那种非常丑陋的蒙太奇照片(在 x 和 y 轴上有拟合单位): 抱歉我的 Gimp 技能太差了。 enter image description here

这就是我所做的:

    private JFreeChart createOverlaidChart() 
{
    final NumberAxis domainAxis = new NumberAxis("Speed (m / s)");
    final ValueAxis rangeAxis = new NumberAxis("Power (kw)");

    // create plot ...
    final IntervalXYDataset data0 = createDataset0();
    final XYItemRenderer renderer0 = new XYBarRenderer(0.20);
    // change "new XYBarRenderer(0.20)" to "StandardXYItemRenderer()" if you want to change  type of graph
    final XYPlot plot = new XYPlot(data0, domainAxis, rangeAxis, renderer0);

    // add a second dataset and renderer... 
    final IntervalXYDataset data1 = createDataset1();
    final XYLineAndShapeRenderer renderer1 = new XYLineAndShapeRenderer(false, true); 
    // arguments of new XYLineAndShapeRenderer are to activate or deactivate the display of points or line. Set first argument to true if you want to draw lines between the points for e.g.
    plot.setDataset(1, data1);
    plot.setRenderer(1, renderer1);

    // add a third dataset and renderer... 
    final IntervalXYDataset data2 = createDataset2();
    final XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(true, true); 
    // arguments of new XYLineAndShapeRenderer are to activate or deactivate the display of points or line. Set first argument to true if you want to draw lines between the points for e.g.
    plot.setDataset(2, data2);
    plot.setRenderer(2, renderer2);

    plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);

    // return a new chart containing the overlaid plot...
    return new JFreeChart("Test", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
}

最佳答案

范围轴是垂直/Y轴,您需要添加第二个Domain Axis (水平/X 轴)到您的图表。

关于java - 使用 JFreechart 调整适合另一个轴的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912862/

相关文章:

java - Horizo​​ntal Recycler图像查看

java - 我的 viewpager 中每个片段的不同标题

Android 项目引用的 Android 库中的 Java 库抛出 NoClassDefFounderror

java - JfreeChart LineAndShapeRenderer,如何为Line设置OutlinePaint?

java - 在 Scala SBT 项目中导入 Accumulo 库

python - matplotlib/python - 如何绘制这样的图?平均值 ± 3* 标准偏差

plot - Vega-Lite - 如何绘制箭头?

r - 用 rChart 标记以上点

java - 使用 JFreeChart 库在 awt.Image 上绘制轴

java - 在 Java 中添加到列表中的系列