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