JFreeChart 一个曲线的实例

<%@page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="struts-logic.tld" prefix="logic" %>
<%@ taglib uri="struts-bean.tld" prefix="bean" %>
<%@ taglib uri="struts-html.tld" prefix="html" %>
<%@ page import="java.util.*" %>
<%@ page import="java.awt.*" %>
<%@ page import = "org.jfree.chart.*,
      org.jfree.data.*,
      org.jfree.data.general.DefaultPieDataset,
      org.jfree.chart.plot.PiePlot,
      org.jfree.chart.plot.PiePlot3D,
                    org.jfree.chart.axis.NumberAxis,
                    org.jfree.chart.plot.CategoryPlot,
                    org.jfree.chart.plot.PlotOrientation,
                    org.jfree.chart.servlet.ServletUtilities,
                    org.jfree.data.category.DefaultCategoryDataset,
                    org.jfree.chart.labels.*,
                    org.jfree.chart.renderer.category.LineAndShapeRenderer,
                    org.jfree.data.general.DatasetUtilities,
                    org.jfree.chart.renderer.category.BarRenderer3D,
                    org.jfree.data.category.CategoryDataset,
                    org.jfree.chart.axis.CategoryAxis,
                    org.jfree.chart.axis.AxisLocation,
                    org.jfree.chart.axis.ValueAxis,
                    org.jfree.chart.renderer.category.BarRenderer3D"
                  %>
<HTML>

<HEAD>
   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<%

/**
*一个表格式的数据用图片显示出来
*           北京      上海     广州      成都     深圳
*     苹果    672      766      223      540      126
*     梨子    325,     521,     210,     340,     106
*     葡萄    332,     256,     523,     240,     526
*/
//每一行的数据
double[][] data = new double[][] {{672, 766, 223, 540, 126}, {325, 521, 210, 340, 106}, {332, 256, 523, 240, 526} };
//每一行的行标题
String [] rowKeys={"苹果","梨子","葡萄"};
//每一列的标题
String [] columnKeys={"北京","上海","广州","成都"),"深圳"};
/**
* 第一种添加数据的方式
*/
//CategoryDataset bardata=DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data);

/**
* createBarChart3D方法是ChartFactory工厂类里的一个方法,用于3D柱状图的生成,
*该类继承自JFreeChart。其中的八个参数分别代表:图形的标题、
* X轴标题、
* Y轴标题、
* dataset就是CategoryDataset类的实例对象、
* 柱状的的显示方式,本例是水平
* 显示柱状颜色代表的含义、
* 启用热键、//一般不用(false)
* 启用超键接。//一般不用(false)
*/

/**
*第二种添加数据的方式
*/
DefaultCategoryDataset bardata = new DefaultCategoryDataset();
for(int i=0;i<3;i++)
{
   for(int j=0;j<5;j++)
   {
     bardata.addValue(data[i][j],rowKeys[i],columnKeys[j]);
     System.out.println("new !");
   }
}
       JFreeChart chart = ChartFactory.createLineChart(
            "",        // chart title
            "",                     // domain axis label
            "万元",                    // range axis label
            bardata,                    // data
            PlotOrientation.VERTICAL,   // orientation
            true,                       // include legend
            false,                       // tooltips
            false                       // urls
        );

        // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
        /*StandardLegend legend = (StandardLegend) chart.getLegend();
        legend.setDisplaySeriesShapes(true);
        legend.setShapeScaleX(1.5);
        legend.setShapeScaleY(1.5);
        legend.setDisplaySeriesLines(true);
        */
        CategoryPlot plot = chart.getCategoryPlot();

        // customise the range axis...
        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        rangeAxis.setAutoRangeIncludesZero(true);
        rangeAxis.setUpperMargin(0.10);//纵轴的间隔比例
        rangeAxis.setLabelAngle(Math.PI / 10.0);//纵轴标签角度
        LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
        //renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());//显示折点数据
        renderer.setItemLabelsVisible(true);

//把对象保存到session中
String filename = ServletUtilities.saveChartAsPNG(chart, 700, 350, null, session);
//得到路径
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<body>
<IMG height=350 src="<%=graphURL%>" width=700 useMap="#<%=filename%>" border=0>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值