分享

JFreeChart柱状图3D多色百分比JSP输出JPG代码

 米米饭 2005-12-06

<%@ 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("水果销量统计图",
                                                   "水果",
                                                   "销量",
                                                   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); //百分数格式
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);
%>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约