如何使用JFReechart创建双X轴图?带有冲刺名称的时间表
我正在用JFree图表挣扎在双X轴图表上。在使用图表定制器进行了几次试验之后,它仍然不起作用。我想在数据源中的轴上有基于事件的标签。问题是第二个X轴未显示。 这是我的代码:
public class BurnupTimelineChartCustomizer extends JRAbstractChartCustomizer {
private static final String Y_AXIS_MAX_VALUE = "yaxisMaxValue";
private static final String EXPECTED_TOTAL_SCOPE = "expectedTotalScope";
@Override
public void customize(JFreeChart chart, JRChart jasperChart) {
Double yaxisMaxValue = (Double) this.getParameterValue(Y_AXIS_MAX_VALUE);
Double expectedTotalScope = (Double) this.getParameterValue(EXPECTED_TOTAL_SCOPE);
CategoryPlot plot = chart.getCategoryPlot();
// Value Marker
ValueMarker marker = new ValueMarker(Math.max(yaxisMaxValue,expectedTotalScope));
marker.setPaint(Color.black);
plot.addRangeMarker(marker);
// Dual Axis
CategoryAxis sprintAxis = new CategoryAxis("TimeLine Axis");
plot.setDomainAxis(1, sprintAxis );
plot.mapDatasetToDomainAxis(1, 1); // Range Axis
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setUpperBound(Math.max(expectedTotalScope, yaxisMaxValue) +100);
rangeAxis.setLowerBound(0.);
rangeAxis.setVisible(false);
// Dashed line
LineAndShapeRenderer lineAndShapeRenderer = new LineAndShapeRenderer(true, true);
lineAndShapeRenderer.setSeriesPaint(0,Color.black);
lineAndShapeRenderer.setBaseItemLabelsVisible(Boolean.TRUE);
lineAndShapeRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
plot.setRenderer(lineAndShapeRenderer);
}}
I'm struggling with the dual X-axis chart with jfree chart. After a few trials with a chart customizer it still doesn't work. I would like to have events based labels on the axis that are in my datasource. The problem is the second x-axis does not show.
Here is my code:
public class BurnupTimelineChartCustomizer extends JRAbstractChartCustomizer {
private static final String Y_AXIS_MAX_VALUE = "yaxisMaxValue";
private static final String EXPECTED_TOTAL_SCOPE = "expectedTotalScope";
@Override
public void customize(JFreeChart chart, JRChart jasperChart) {
Double yaxisMaxValue = (Double) this.getParameterValue(Y_AXIS_MAX_VALUE);
Double expectedTotalScope = (Double) this.getParameterValue(EXPECTED_TOTAL_SCOPE);
CategoryPlot plot = chart.getCategoryPlot();
// Value Marker
ValueMarker marker = new ValueMarker(Math.max(yaxisMaxValue,expectedTotalScope));
marker.setPaint(Color.black);
plot.addRangeMarker(marker);
// Dual Axis
CategoryAxis sprintAxis = new CategoryAxis("TimeLine Axis");
plot.setDomainAxis(1, sprintAxis );
plot.mapDatasetToDomainAxis(1, 1); // Range Axis
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setUpperBound(Math.max(expectedTotalScope, yaxisMaxValue) +100);
rangeAxis.setLowerBound(0.);
rangeAxis.setVisible(false);
// Dashed line
LineAndShapeRenderer lineAndShapeRenderer = new LineAndShapeRenderer(true, true);
lineAndShapeRenderer.setSeriesPaint(0,Color.black);
lineAndShapeRenderer.setBaseItemLabelsVisible(Boolean.TRUE);
lineAndShapeRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
plot.setRenderer(lineAndShapeRenderer);
}}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论