我已经正确生成了XY折线图,但我面临以下问题:
生成的HREF操作更改从查询中获取的值并显示其数组位置。因此,生成的工具提示是可以的,所以我认为用于生成图形和区域地图的XYdataset
是可以的
这是用于生成数据集的SQL。
SELECT distinct v.station_name as STATION,date_part('month',(v.billing_time)) as MONTH_NUM,count(*) as TRANSACTIONS
FROM vista_all v
where v.station_ind=v.station_ind
and v.station_medmat='MED'
group by v.station_name,MONTH_NUM
ORDER BY station_name;
下面是查询返回的第一行的示例:
OBSERVACIO|2|1.6768
OBSERVACIO|3|716
UCI|3|2.990
UCI|4|3.529
我使用以下代码生成我的图形:
NumberAxis xAxis = new NumberAxis(graphicTO.getLabelX());
NumberAxis yAxis = new NumberAxis(graphicTO.getLabelY());
XYItemRenderer xyRenderer = (XYItemRenderer)new XYLineAndShapeRenderer();
xyRenderer.setDefaultToolTipGenerator((XYToolTipGenerator) new StandardXYToolTipGenerator());
StandardXYURLGenerator url = new StandardXYURLGenerator(any_action, "series", "DrillDown");
xyRenderer.setURLGenerator(url);
XYPlot plot = new XYPlot(dataset, xAxis, yAxis, xyRenderer);
plot.setOrientation(PlotOrientation.VERTICAL);
chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, true);
因此,我期望在我的图中生成的工具提示将是";OBSERVACIO:21.6768〃;其中第一行和";UCI:39290〃;这是可以的,工作顺利。
问题是在序列行中生成的url如下:
any_action&series=0&DrillDown=0
any_action&series=0&DrillDown=1
any_action&series=1&DrillDown=0
any_action&series=1&DrillDown=1
我期待
any_action&series=OBSERVACIO&DrillDown=2
any_action&series=OBSERVACIO&DrillDown=3
any_action&series=UCI&DrillDown=3
any_action&series=UCI&DrillDown=4
类似的方法是使用数组位置而不是值本身。
知道吗?图形在视觉上是可以的,点在正确的位置,我的意思是我认为数据集是可以的。
我真的很感激你能提供的任何帮助。
Ivan
谢谢!
我最终生成了一个实现XYURLGenerator
接口的类,该类的代码与StandardXYURLGenerator
完全相同,唯一的区别是方法generateURL
,它现在返回我需要的数据。
@Override
public String generateURL(XYDataset dataset, int series, int item) {
String url = this.prefix;
boolean firstParameter = !url.contains("?");
url += firstParameter ? "?" : "&";
url += "series" + "=" + dataset.getSeriesKey(series)
+ "&" + "DrillDown" + "=" + dataset.getXValue(series, item);
return url;
}