首页>代码>jfreechart生成柱状图>/jfreechart生成柱状图/src/com/test1/BarChartServlet.java
/* 
 * To change this template, choose Tools | Templates 
 * and open the template in the editor. 
 */  
package com.test1;  
  
import java.awt.Font;  
import java.io.IOException;  
import java.io.OutputStream;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import org.jfree.chart.ChartFactory;  
import org.jfree.chart.ChartUtilities;  
import org.jfree.chart.JFreeChart;  
import org.jfree.chart.axis.CategoryAxis;  
import org.jfree.chart.axis.NumberAxis;  
import org.jfree.chart.plot.CategoryPlot;  
import org.jfree.chart.plot.PlotOrientation;  
import org.jfree.data.category.CategoryDataset;  
import org.jfree.data.category.DefaultCategoryDataset;  
  
/** 
 * 
 * @author Administrator 
 */  
public class BarChartServlet extends HttpServlet {  
  
    @Override  
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
  
        response.setContentType("image/jpeg");  
        OutputStream out = response.getOutputStream();  
  
        CategoryDataset ds = getDataSet();  
        JFreeChart chart = ChartFactory.createBarChart3D(  
                "单站日降雨量", //图表标题  
                "", //X轴的显示标签  
                "降雨量(mm)", //Y轴的显示标签  
                ds, //数据集  
                PlotOrientation.VERTICAL, //图表方向  
                true, //是否显示图例,对于简单的柱状图必须为false  
                false, //是否生成提示工具  
                false);         //是否生成url链接  
  
        CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();  
  
        NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();  
  
        CategoryAxis domainAxis = categoryplot.getDomainAxis();  
  
        /*------设置X轴坐标上的文字-----------*/  
        domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));  
  
        /*------设置X轴的标题文字------------*/  
        domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));  
  
        /*------设置Y轴坐标上的文字-----------*/  
        numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));  
  
        /*------设置Y轴的标题文字------------*/  
        numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));  
  
        /*------这句代码解决了底部汉字乱码的问题-----------*/  
        chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));  
  
        /*******这句代码解决了标题汉字乱码的问题********/  
        chart.getTitle().setFont(new Font("宋体", Font.PLAIN, 12));  
  
        try {  
            ChartUtilities.writeChartAsJPEG(out, 0.5f, chart, 1200, 800, null);  
        } finally {  
            try {  
                out.close();  
            } catch (Exception ex) {  
                ex.printStackTrace();  
            }  
        }  
    }  
  
    @Override  
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException,  
            IOException {  
        doGet(request, response);  
    }  
  
    private CategoryDataset getDataSet() {  
        DefaultCategoryDataset ds = new DefaultCategoryDataset();  
        ds.addValue(80, "", "2月21日");  
        ds.addValue(100, "", "2月22日");
        ds.addValue(60, "", "2月23日"); 
        ds.addValue(110, "", "2月24日");
        ds.addValue(90, "", "2月25日");
        ds.addValue(120, "", "2月26日"); 
        ds.addValue(50, "", "2月27日");
        ds.addValue(70, "", "2月28日"); 
        ds.addValue(80, "", "3月1日");
        ds.addValue(40, "", "3月2日");
        ds.addValue(60, "", "3月3日"); 
        ds.addValue(90, "", "3月4日");
        ds.addValue(500, "", "3月5日");
        ds.addValue(500, "", "3月6日");
        ds.addValue(500, "", "3月7日");
        return ds;  
    }  
} 
最近下载更多
hefei100  LV2 2019年7月16日
NextOne  LV2 2018年8月25日
364550246  LV15 2018年6月10日
a569497437  LV2 2018年5月7日
jiemozi  LV2 2018年3月5日
15996932533  LV1 2018年2月22日
puhuiling  LV9 2017年12月23日
sunnyH  LV1 2017年12月8日
wxsuperwx  LV17 2017年12月2日
lintaotao  LV3 2017年9月13日
最近浏览更多
cz8857216  LV4 8月7日
fesfefe  LV13 2023年11月1日
189676630  LV4 2023年4月19日
tangjj7260  LV18 2021年10月26日
嘉琪拉  LV2 2021年8月31日
heshiyang  LV1 2021年7月11日
我寄愁心  LV8 2021年6月22日
zhaojialiang  LV7 2021年5月14日
江权盛  LV2 2020年12月28日
chenghao4u  LV8 2020年11月25日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友