帮助JFreeChart覆盖

前端之家收集整理的这篇文章主要介绍了帮助JFreeChart覆盖前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了JFreeChart重叠图的问题.我正在使用JFreeChart 1.0.13.我想要做的似乎是在早期版本的JFreeChart中更容易做到?

该图显示折线图和条形图.由Y轴的折线图绘制的数据范围在0-100范围内,条形图的轴在0-5范围内.

单独地,当我布置每个图表并绘制它们时,它们看起来很棒.这是一个例子:

条形图
折线图

但是当我覆盖它们时,条形图缩小到看起来非常无用……大概是因为两个数据集的比例是如此不同.

例:

我真正想要的是分割两个数据集的系列数据,并在左侧Y轴上显示折线图的0-100范围,并使条形图显示为完整尺寸,如下面的第一个示例所示,但是标尺0-5显示在图表的右侧Y轴侧.

要创建图形,我首先使用XYSeriesCollection创建条形图,添加数据并创建绘图…

XYSeriesCollection histogramDataset= new XYSeriesCollection();
XYSeries xy= new XYSeries("Temp");
xy.add(100,0.0);
xy.add(101,0.3769791404875597);
histogramDataset.addSeries(xy);
...
final NumberAxis xAxis = new NumberAxis("Temperature C");
xAxis.setAutoRangeIncludesZero(false);
final ValueAxis yAxis = new NumberAxis("Percent Time above Temperature");
final XYItemRenderer renderer = new XYBarRenderer();

final XYPlot plot = new XYPlot((XYDataset) histogramDataset,xAxis,yAxis,renderer);

然后我以类似的方式创建折线图并将第二个系列添加到图中……

final XYSeries xy = new XYSeries("First");
final XYDataset xySeriesData = new XYSeriesCollection();
final XYItemRenderer xyLineRenderer = new XYLineAndShapeRenderer();
xyLineRenderer.setSeriesShape(0,new Line2D.Double(0.0,0.0,0.0));
xyLineRenderer.setSeriesStroke(0,new BasicStroke(4.5f));
xy.add(100,100.0);
xy.add(101,100.0);
xyseriesData.add(xy);
plot.setDataset(1,xySeriesData);
plot.setRenderer(1,xyLineRenderer);
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);

我的怀疑是,每个图表都需要是它自己的情节并组合在一起.有人可以帮忙吗?我在这里要做的是这样的:

除了我不希望条形图是背景图像. X轴应该相同,Y轴应该在右侧,并且具有适当的比例,允许图形显示为全尺寸.

任何/所有回复都表示赞赏……

解决方法

我看到你在你的情节中添加了第二个数据集和渲染器,但你强迫它们使用相同的范围轴.相反,为第二个数据集的范围提供一个新的 NumberAxis.

另外,不要忽视JFreeChart Demo中的轴相关示例,也不要低估JFreeChart Developer Guide的值.

原文链接:https://www.f2er.com/css/215920.html

猜你在找的CSS相关文章