我正在尝试制作一个重叠图, 我的问题是我无法使第二个图适合第二个图。 这是我的第一个情节:
这是第二个:
当我尝试同时适应两者时,这就是我得到的:
所以基本上,我想将整个第二个图拟合在 0 到 30 之间,我怎样才能做到这一点而不丢失任何数据?
首先我尝试使用plot.mapDatasetToRangeAxis()
然后我尝试了:
domain.setRange(0.00, 30.0);
domain.setTickUnit(new NumberTickUnit(1));
但是我无法使第一个和第二个都按我的意愿工作。 你还有其他建议吗? (除了购买 this - 作为学生我现在买不起)。 任何帮助将不胜感激:)
哦,顺便说一句,x 轴是速度(忘记将其绘制在绘图上)。
所以这是我想要的那种非常丑陋的蒙太奇照片(在 x 和 y 轴上有拟合单位): 抱歉我的 Gimp 技能太差了。
这就是我所做的:
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/