qq_29159643 2015-12-19 08:53 采纳率: 0%
浏览 1329

java 显示柱状图报错

图片说明

图片说明

package wsy.servlet;
import java.awt.Color;

import java.awt.Font;

import java.io.IOException;

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.chart.renderer.category.BarRenderer;

import org.jfree.chart.title.TextTitle;

import org.jfree.data.category.DefaultCategoryDataset;

/**

  • 柱状分布统计图
  • @说明
  • @author cuisuqiang
  • @version 1.0
  • @since
    /

    @SuppressWarnings("serial")

    public class ParagraphsServlet extends HttpServlet {

    protected void service(HttpServletRequest request,

    HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("text/html");

    DefaultCategoryDataset dataTime = new DefaultCategoryDataset();

    // 这是一组数据

    dataTime.addValue(52, "0-6", "2010-1-1");

    dataTime.addValue(86, "6-12", "2010-1-1");

    dataTime.addValue(126, "12-18", "2010-1-1");

    dataTime.addValue(42, "18-24", "2010-1-1");

    // 这是一组数据

    dataTime.addValue(452, "0-6", "2010-1-2");

    dataTime.addValue(96, "6-12", "2010-1-2");

    dataTime.addValue(254, "12-18", "2010-1-2");

    dataTime.addValue(126, "18-24", "2010-1-2");

    // 这是一组数据

    dataTime.addValue(256, "0-6", "2010-1-3");

    dataTime.addValue(86, "6-12", "2010-1-3");

    dataTime.addValue(365, "12-18", "2010-1-3");

    dataTime.addValue(24, "18-24", "2010-1-3");

    try {

    DefaultCategoryDataset data = dataTime;

    // 使用ChartFactory创建3D柱状图,不想使用3D,直接使用createBarChart

    JFreeChart chart = ChartFactory.createBarChart3D(

    "网站时间段访问量统计",

    "时间",

    "访问量",

    data,

    PlotOrientation.VERTICAL,

    true,

    false,

    false

    );

    // 设置整个图片的背景色

    chart.setBackgroundPaint(Color.PINK);

    // 设置图片有边框

    chart.setBorderVisible(true);

    Font kfont = new Font("宋体", Font.PLAIN, 12); // 底部

    Font titleFont = new Font("宋体", Font.BOLD, 25); // 图片标题

    // 图片标题

    chart.setTitle(new TextTitle(chart.getTitle().getText(), titleFont));

    // 底部

    chart.getLegend().setItemFont(kfont);

    // 得到坐标设置字体解决乱码

    CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();

    categoryplot.setDomainGridlinesVisible(true);

    categoryplot.setRangeCrosshairVisible(true);

    categoryplot.setRangeCrosshairPaint(Color.blue);

    NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();

    numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer();

    barrenderer.setBaseItemLabelFont(new Font("宋体", Font.PLAIN, 12));

    barrenderer.setSeriesItemLabelFont(1, new Font("宋体", Font.PLAIN, 12));

    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));

    ChartUtilities.writeChartAsJPEG(response.getOutputStream(), 1f, chart,600,300, null);

    } catch (Exception es) {  
        es.printStackTrace();  
    }  
    

    }

    }

请大师帮忙提点下

  • 写回答

1条回答 默认 最新

  • song5566tao 2015-12-21 07:07
    关注

    后台点debug 调试一下

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊