我想在使用JFreeChart创建的散点图上显示给定点的x,y数据。我也在网上和开发人员的指南中查看,但仍然无法做到这一点。
我使用ChartFactory
创建散点图chart = ChartFactory.createScatterPlot( title, xlabel, ylabel, data, plotOrientation.VERTICAL,
false, true, false );
我试图实现chartMouseClicked事件。
public void chartMouseClicked(ChartMouseEvent event) {
ChartEntity entity = event.getEntity();
If (entity != null) {
XYItemEntity ent = (XYItemEntity) entity;
int sindex = ent.getSeriesIndex();
int iindex = ent.getItem();
System.out.println("x = " + data.getXValue(sindex, iindex));
}
}
其中data是与绘图相关的XYDataSet的实现。
这似乎没有给我任何数字。我做错了什么?
由于
答案 0 :(得分:3)
啊,所有的红色都是因为我没有检查它是否是XYItemEntity的实例。
修改后的代码:
public void chartMouseClicked(ChartMouseEvent event) {
ChartEntity entity = event.getEntity();
if (entity != null && entity instanceof XYItemEntity) {
XYItemEntity ent = (XYItemEntity) entity;
int sindex = ent.getSeriesIndex();
int iindex = ent.getItem();
System.out.println("x = " + data.getXValue(sindex, iindex));
System.out.println("y = " + data.getYValue(sindex, iindex));
}
}
这似乎现在有用了!