在工作中用到了生成曲线图时要将数据值显示在每个数据点上,并且不同数据线的数据点要显示不同的小图标,经过长时间的查找资料研究终于实现了功能。工作中就生成了如下的图片:
生成此图中的数据点图标和显示数据值的主要代码就是下面这些,这里使用的是DefaultCategoryDataset数据集:
CategoryPlot plot=chart.getCategoryPlot();
plot.setBackgroundPaint(Color.WHITE);
plot.setRangeGridlinePaint(Color.BLUE);//纵坐标格线颜色
plot.setDomainGridlinePaint(Color.BLACK);//横坐标格线颜色
plot.setDomainGridlinesVisible(true);//显示横坐标格线
plot.setRangeGridlinesVisible(true);//显示纵坐标格线
LineAndShapeRenderer renderer = (LineAndShapeRenderer)plot.getRenderer();
DecimalFormat decimalformat1 = new DecimalFormat("##.##");//数据点显示数据值的格式
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", decimalformat1));
//上面这句是设置数据项标签的生成器
renderer.setItemLabelsVisible(true);//设置项标签显示
renderer.setBaseItemLabelsVisible(true);//基本项标签显示
//上面这几句就决定了数据点按照设定的格式显示数据值
renderer.setShapesFilled(Boolean.TRUE);//在数据点显示实心的小图标
renderer.setShapesVisible(true);//设置显示小图标