0
我需要创建一个条形图,从列出访问记录的数据库中的表中读取数据。jfreechart条形图输出
表应该显示哪些供应商访问它(X轴),那是谁的代表(各条)访问,多少次(Y轴)
每个供应商可以代表的访问多个直辖市,但每个直辖市只有一个供应商。因此,每个供应商可能会显示多个酒吧....但是,图表中的每个酒吧都是唯一的,并按供应商分组。
在jfreechart的例子中,我看到x轴上的每个类别都使用重复系列,但是如何在每个小节独特的地方执行我所需要的操作?
下面是相关的servlet代码:
//Municipality, Vendor //for month of January //Vendor //Municipality
if (stmt.execute("Select COUNT(accessFor), accessBy, accessFor FROM bps_bam.access WHERE DATE_FORMAT(accessTime, '%Y %M') = '2012 January' GROUP BY accessBy, accessFor;")) {
rs = stmt.getResultSet();
} else {
System.err.println("select failed");
}
DefaultCategoryDataset dataset = new DefaultCategoryDataset(); //Set of values for Bar Graph
while(rs.next())
{ //count //municipality //vendor
dataset.addValue(rs.getDouble(1), rs.getString(3), (String)rs.getString(2));
}
counter++;
JFreeChart chart = ChartFactory.createBarChart(
"January Access Times", // chart title
"Vendor", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
false, // include legend
false, // tooltips
false // URLs?
);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
CategoryItemRenderer renderer = plot.getRenderer();
CategoryItemLabelGenerator generator
= new StandardCategoryItemLabelGenerator("{0}",
NumberFormat.getInstance());
renderer.setBaseItemLabelGenerator(generator);
renderer.setBaseItemLabelFont(new Font("SansSerif", Font.PLAIN, 12));
renderer.setBaseItemLabelsVisible(true);
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
response.setContentType("image/png");
//response.addHeader("Refresh", "5");
//Write numbers on range axis just as integrals, not decimals
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
ChartUtilities.writeChartAsPNG(out, chart, 800, 500);
谢谢格雷厄姆,但没有:) 每个市应在图表中一旦出现,因为每个市只有一家供应商。事实上,每个市镇都可以是相同的颜色,因为没有一个会在图表上出现两次。我只需要由供应商在X轴上分割它们。 – Moe45673
@ Moe45673在这种情况下,你可以模拟一个图表,因为我无法想象你想要做什么。 – GrahamA
嗯...... ..... 那么,你在显示的图表中有13个条。想象一下,所有的酒吧都是相同的颜色,并且市政府被命名为“市政1”到“市政13”,并且为了这个实体模型而被分配到酒吧。 这就是我试图达到的样子(显然真实的数据不会是随机的)。这有帮助吗? – Moe45673