jFreeChart就是那样的要好看自己用JAVA写吧! 我就是自己写的!

解决方案 »

  1.   

    jFreeChart是我见过的参数最多的开元项目
      

  2.   

    有没有详细介绍jfreechart的使用的
    我要用做毕业设计的画图
      

  3.   

    <!--

    功能: JFreeChart实例11: 自定义线段图
    -->
    <%@ page language="java" contentType="image/png;charset=GB2312"
    import="java.awt.*"
    import="org.jfree.chart.*"
    import="org.jfree.chart.servlet.*"
    import="org.jfree.chart.plot.*"
    import="org.jfree.chart.renderer.*"
    import="org.jfree.chart.entity.*"
    import="org.jfree.chart.title.*"
    import="org.jfree.chart.axis.*"
    import="org.jfree.chart.renderer.category.LineAndShapeRenderer"
    import="org.jfree.data.*"
    import="org.jfree.data.general.*"
    import="org.jfree.data.category.*"
    import="org.jfree.ui.*"
    import="org.jfree.util.*"
    %>
    <%!
        
    String bookTitle[] = {"Python", "JAVA", "C#", "Perl", "PHP"};
    String category[] = {"第1周", "第2周", "第3周", "第4周" };
    double bookSales;
    String chartTitle = "JFreeChart实例11: 自定义线段图"; // 创建数据集
    public CategoryDataset createDataset() 
    {        
            DefaultCategoryDataset dataset = new DefaultCategoryDataset();
            for (int i=0; i < bookTitle.length; i++)
    {
    for (int j=0; j < category.length; j++ )
    {
    bookSales = 1 +  (Math.random() * 100);
    dataset.addValue(bookSales, bookTitle[i], category[j]);
    }
    }
            return dataset;        
        } public JFreeChart createChart(CategoryDataset dataset)
    {
    // 创建图表对象
    JFreeChart chart = ChartFactory.createLineChart
    (
    chartTitle, // 图表标题
    "销售时间:2005年2月", // 坐标标题
    "销售量",                  // 坐标标题
    dataset,                  // 定义绘制数据
    PlotOrientation.VERTICAL, // 直方图的方向
    true,                     // 定义图表是否包含图例
    true,                     // 定义图表是否包含提示
    false                     // 定义图表是否包含URL
     );
     return chart;
    }
    %>
    <%
    // 创建一个 500X375 的图像
    int width=500, height=375;         CategoryDataset dataset = createDataset();
            JFreeChart chart = createChart(dataset);
            // 开始自定义图表绘制的相关属性

            // 设置图表的背景颜色
            chart.setBackgroundPaint(new Color(205, 241, 197)); // 自定义图表的标题的字体和颜色
    TextTitle title = chart.getTitle();
    title.setFont(new Font("汉真广标", Font.BOLD, 25));        // 获得图表对象的引用,用于设置更多的自定义绘制属性
            CategoryPlot plot = (CategoryPlot) chart.getPlot();
            GradientPaint bg = new GradientPaint(0, 50, new Color(248, 253, 255), 
    0, 250, new Color(205, 237, 252));
            plot.setBackgroundPaint(bg); 
            plot.setDomainGridlinePaint(Color.BLACK);
            plot.setDomainGridlinesVisible(true);
            plot.setRangeGridlinePaint(Color.RED);
          
            // 设置横轴标题的字体
    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setLabelFont(new Font("黑体", Font.BOLD, 15));

            // 设置纵轴标题文字的字体及其旋转方向
    ValueAxis rangeAxis = plot.getRangeAxis();
    rangeAxis.setLabelFont(new Font("黑体", Font.BOLD, 15));
    rangeAxis.setLabelAngle(Math.PI/2);

    // 自定义图例的显示风格
    StandardLegend legend = (StandardLegend) chart.getLegend();
            legend.setDisplaySeriesShapes(true);
            legend.setShapeScaleX(1.5);
            legend.setShapeScaleY(1.5);
            legend.setDisplaySeriesLines(true);        // 获取渲染对象
            LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();

    // 自定义线段的绘制颜色
    Color color[] = new Color[bookTitle.length];
    color[0] = new Color(99,99,0);
    color[1] = new Color(255,169,66);
    color[2] = new Color(33,255, 66);
    color[3] = new Color(33,0,255);
    color[4] = new Color(255,0,66);
    for (int i = 0; i < color.length; i++)
    {
    renderer.setSeriesPaint(i, color[i]);
    } // 自定义线段的绘制风格
    BasicStroke bs ;
    for (int i = 0; i < bookTitle.length; i++)
    {
    float dashes[] = {10.0f};
    bs = new BasicStroke(2.0f, BasicStroke.CAP_ROUND, 
    BasicStroke.JOIN_ROUND, 10.f, dashes, 0.0f);
    if (i % 2 != 0)
    renderer.setSeriesStroke(i, bs);
    else
    renderer.setSeriesStroke(i, new BasicStroke(2.0f));
    }
          
    // 结束自定义图表绘制的相关属性

    ChartRenderingInfo info = 
       new ChartRenderingInfo(new StandardEntityCollection()); // 设置图片生成格式
            String fileName = 
       ServletUtilities.saveChartAsPNG(chart, width, height, info, session);

            // 设置图片生成路径
    String graphURL = 
       request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName; %>
    <HTML>
     <HEAD>
           <TITLE><%=chartTitle%></TITLE>
     </HEAD>
     <BODY>
           <P ALIGN="CENTER">
           <img src="<%=graphURL %>" border="1" >
           </P>
     </BODY>
    </HTML>
      

  4.   

    <!--

    功能: JFreeChart实例15: Time Series 图表
    -->
    <%@ page language="java" contentType="image/png;charset=GB2312"
    import="java.awt.*"
    import="java.text.*"
    import="org.jfree.chart.*"
    import="org.jfree.chart.axis.*"
    import="org.jfree.chart.servlet.*"
    import="org.jfree.chart.plot.*"
    import="org.jfree.chart.renderer.*"
    import="org.jfree.chart.axis.*"
    import="org.jfree.chart.entity.*"
    import="org.jfree.chart.labels.*"
    import="org.jfree.chart.title.*"
    import="org.jfree.chart.renderer.xy.*"
    import="org.jfree.data.*"
    import="org.jfree.data.xy.*"
    import="org.jfree.data.time.*"
    import="org.jfree.ui.*"
    import="org.jfree.util.*"
    %>
    <%!    
    String bookTitle[] = {"Python", "JAVA"};
    String chartTitle = "计算机编程类图书2004年月销售量时序统计图"; // 创建数据集
    public XYDataset createDataset()
    {        
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    TimeSeries ts[] = new TimeSeries[bookTitle.length];
            int bookSales = 0;
    for (int i =0; i< bookTitle.length; i++)
    {
    ts[i] = new TimeSeries(bookTitle[i], Month.class);
    for (int month = 1; month <= 12; month++) 
    {
    bookSales = 70 + (int)(Math.random() * 100);
    ts[i].add(new Month(month, 2004), bookSales);  
    }
    dataset.addSeries(ts[i]);
    }       

            return dataset;           
        } public JFreeChart createChart(XYDataset dataset)
    {
    // 创建图表对象
    JFreeChart chart = ChartFactory.createTimeSeriesChart
    (
    chartTitle, // 图表标题
    "统计时间",                // 坐标标题
    "月销售量",                  // 坐标标题
    dataset,                  // 定义绘制数据
    true,                     // 定义图表是否包含图例
    true,                     // 定义图表是否包含提示
    false                     // 定义图表是否包含URL
     );
     return chart;
    }
    %>
    <%
    // 创建一个 500X375 的图像
    int width=500, height=375;         XYDataset dataset = createDataset();
            JFreeChart chart = createChart(dataset);        // 开始自定义图表绘制的相关属性        // 设置整个图表的背景颜色
    GradientPaint bgGP = new GradientPaint(0, 0, Color.LIGHT_GRAY, 
      0, height, Color.WHITE, false);
            chart.setBackgroundPaint(bgGP);        // 设置图表对象的绘制属性
            XYPlot plot = chart.getXYPlot();

    // 自定义图例
    StandardLegend sl = (StandardLegend) chart.getLegend();
            sl.setDisplaySeriesShapes(true);        // 设置横轴上的时间刻度的显示格式
    DateAxis domainAxis = new DateAxis("统计时段:2004年");        
    DateFormat df = new SimpleDateFormat("yyyy-MM");
            DateTickUnit unit = new DateTickUnit(DateTickUnit.MONTH, 1, df);
    domainAxis.setTickUnit(unit);
    domainAxis.setVerticalTickLabels(true);
    plot.setDomainAxis(domainAxis);     StandardXYItemRenderer renderer = 
    (StandardXYItemRenderer) plot.getRenderer();
            renderer.setPlotShapes(true);
            renderer.setSeriesShapesFilled(0, Boolean.TRUE);
            renderer.setSeriesShapesFilled(1, Boolean.FALSE); // 结束自定义图表绘制的相关属性

    ChartRenderingInfo info = 
       new ChartRenderingInfo(new StandardEntityCollection()); // 设置图片生成格式
            String fileName = 
       ServletUtilities.saveChartAsPNG(chart, width, height, info, session);

            // 设置图片生成路径
    String graphURL = 
       request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName; 
    %>
    <HTML>
     <HEAD>
           <TITLE><%=chartTitle%></TITLE>
     </HEAD>
     <BODY>
           <P ALIGN="CENTER">
           <img src="<%=graphURL %>" border="1" >
           </P>
     </BODY>
    </HTML>