我正在制作一张图表,显示根据时间的平均值。我建立了一个XYdataset(TimeSeries),其中x轴是时间,y轴是平均值。我从此查询中获得平均值:
select hour, avg(localizations) as avg, count(distinct tag) as cnt from hourly_tag_summaries where hour >= ? and tag in ("+ids+") group by hour;
这就是我创建数据集的方式:
TimeSeries beacons_local = new TimeSeries("beacons-localizations");
String sql= "select hour, avg(localizations) as avg, count(distinct tag) as
cnt from hourly_tag_summaries where hour >= ? and tag in ("+ids+") group by
hour;";
ResultSet rs1 = my_db.selectQuery(sql, Main.NOW - Main.DAYS);
while (rs1.next()) {
int avg = rs1.getInt("avg");
long hour = rs1.getLong("hour");
int cnt= rs1.getInt("cnt");
beacons_local.add(new Millisecond(new Date(hour)),avg);
}
我想保留cnt变量,所以当我将鼠标悬停在图形上时,可以看到每个图的计数。我该怎么做呢?
最佳答案
对于TimeSeries
中的每个TimeSeriesCollection
,保持一个List<Integer>
计数。在您的自定义XYToolTipGenerator
中引用相关计数,如here和here所示。确切的公式取决于您的用例。 XYZDataset
和相应的XYZToolTipGenerator
是可以作为指南的示例。