简体   繁体   English

如何使用 JFreeChart TimeSeries 图表在绘图点显示形状?

[英]How to show shapes at plot points with JFreeChart TimeSeries chart?

I'm using JFreeChart v1.0.19 to create the following time series chart:我正在使用 JFreeChart v1.0.19 创建以下时间序列图表:

在此处输入图片说明

...using the following code: ...使用以下代码:

final String chartTitle = "";
final XYDataset dataset = createDataset1();

final JFreeChart chart = ChartFactory.createTimeSeriesChart(
    chartTitle, "Year End", "Turnover", dataset, true, false, false);

final XYPlot plot = chart.getXYPlot();
final NumberAxis axis2 = new NumberAxis("Cash");
axis2.setAutoRangeIncludesZero(false);
plot.setRangeAxis(1, axis2);
plot.setDataset(1, createDataset2());
plot.mapDatasetToRangeAxis(1, 1);

final StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();
renderer1.setSeriesPaint(0, Color.blue);
renderer1.setSeriesShape(0, ShapeUtilities.createDiamond(5));
renderer1.setSeriesShapesFilled(0, true);
plot.setRenderer(0, renderer1);

final StandardXYItemRenderer renderer2 = new StandardXYItemRenderer();
renderer2.setSeriesPaint(0, Color.black);
renderer2.setSeriesShape(0, ShapeUtilities.createDiamond(5));
renderer2.setSeriesShapesFilled(0, true);
plot.setRenderer(1, renderer2);

chart.getPlot().setBackgroundPaint(Color.WHITE);
chart.getXYPlot().setDomainGridlinePaint(Color.LIGHT_GRAY);
chart.getXYPlot().setRangeGridlinePaint(Color.LIGHT_GRAY);

...but I can't get the data points to show shapes. ...但我无法让数据点显示形状。 Is this possible?这可能吗?

It was my renderer that was the problem.这是我的渲染器的问题。 Changing from StandardXYItemRenderer to XYLineAndShapeRenderer egStandardXYItemRenderer更改为XYLineAndShapeRenderer例如

XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true,true);

...did the trick. ...成功了。 The two boolean args in the constructor are for switching on/off lines and shapes, respectively.构造函数中的两个布尔参数分别用于打开/关闭线条和形状。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM