<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="org.jfree.chart.ChartFactory,
java.awt.*,
java.text.*,
org.jfree.chart.renderer.category.*,
org.jfree.chart.JFreeChart,
org.jfree.chart.plot.*,
org.jfree.chart.axis.*,
org.jfree.chart.labels.*,
org.jfree.data.*,
org.jfree.ui.*,
org.jfree.chart.*,
org.jfree.data.category.*" %>
<%!
static class CustomRenderer extends BarRenderer3D {
public Paint getItemPaint(int i, int j) {
return colors[j % colors.length];
}
private Paint colors[];
public CustomRenderer(Paint apaint[]) {
colors = apaint;
}
}
%>
<%
int a=5,b=6,c=3,d=9,e=2;
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpeg");
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue((double)a/(a+b+c+d+e), "廣州", "蘋果");
dataset.addValue((double)b/(a+b+c+d+e), "廣州", "梨子");
dataset.addValue((double)c/(a+b+c+d+e), "廣州", "葡萄");
dataset.addValue((double)d/(a+b+c+d+e), "廣州", "芒果");
dataset.addValue((double)e/(a+b+c+d+e), "廣州", "荔枝");
JFreeChart chart = ChartFactory.createBarChart3D("水果銷量統(tǒng)計(jì)圖",
"水果",
"銷量",
dataset,
PlotOrientation.VERTICAL,
false,
false,
false);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setForegroundAlpha(0.9f);
NumberAxis verticalAxis = (NumberAxis) plot.getRangeAxis();
verticalAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
verticalAxis.setVisible(false);
CategoryPlot categoryplot = chart.getCategoryPlot();
categoryplot.setNoDataMessage("!");
CustomRenderer customrenderer = new CustomRenderer(new Paint[] {
Color.red, Color.blue, Color.yellow, Color.orange, Color.green, Color.cyan, Color.magenta, Color.blue
});
NumberFormat nfP = NumberFormat.getPercentInstance();
nfP.setMaximumFractionDigits(2); //百分?jǐn)?shù)格式
customrenderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}",nfP));
customrenderer.setItemLabelsVisible(true);
ItemLabelPosition itemlabelposition = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, 0D);
customrenderer.setPositiveItemLabelPosition(itemlabelposition);
customrenderer.setItemLabelFont(new Font("", Font.PLAIN, 36));
categoryplot.setRenderer(customrenderer);
ChartUtilities.writeChartAsJPEG(response.getOutputStream(), 100, chart, 800, 600, null);
%>