参考网上的例子,用如下代码:
http://www.sentom.net/list.asp?id=10 -> 四.曲线图
做出的曲线图如下:
http://glgq.com/images/testjfc.jpg能否在表中各点上标出其值,类似这样
http://glgq.com/images/line.gif刚学jfc,没有文档,而且它的各版本间差异实在太大,例如网上的例子多是基于0.96的,但到了1.0.0rc,很多类或函数的位置或名称变了。请大侠帮忙看看,能否在各点上标出值?
百分感谢~~!

解决方案 »

  1.   

    上文提到的代码如下:linetest.jsp
    ------------------------------------------------------------
    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="java.awt.Color,
                    java.awt.Font,
                    java.awt.GradientPaint,
                    java.io.*,
                    org.jfree.data.general.*,
                    org.jfree.chart.*,
                    org.jfree.data.time.Day,
                    org.jfree.data.time.TimeSeries,
                    org.jfree.data.time.TimeSeriesCollection,
                    org.jfree.data.time.TimeSeriesDataItem,
                    org.jfree.data.category.CategoryDataset,
                    org.jfree.data.category.DefaultCategoryDataset,
                    org.jfree.data.general.DefaultPieDataset,
                    org.jfree.chart.ChartFactory,
                    org.jfree.chart.ChartUtilities,
                    org.jfree.chart.JFreeChart,
                    org.jfree.chart.title.TextTitle,
                    org.jfree.chart.axis.NumberAxis,
                    org.jfree.chart.plot.CategoryPlot,
                    org.jfree.chart.plot.PiePlot"%>
    <%
    // create a default chart based on some sample data...
    //曲线图标题
    String title = "趋势分析";
    //曲线图X轴提示
    String domain = "月份走势";
    //曲线图Y轴提示
    String range = "应收余额";
    //曲线图自标题
    String subtitleStr = "2003财年分析";
    //创建时间数据源
    //每一个TimeSeries在图上是一条曲线
    TimeSeries ca = new TimeSeries("用友");
    for (int i = 1999; i < 2005; i++) {
      for (int mon = 0; mon < 12; mon++) {
        //ca.add(new Month(mon + 1, i), new Double(500 + Math.random() * 100));
        //TimeSeriesDataPair是一个时间点的数值体现
        ca.add(new TimeSeriesDataItem(new Day(1, mon + 1, i),new Double(500 + Math.random() * 100)));
      }
    }
    TimeSeries ibm = new TimeSeries("金碟");
    for (int i = 1999; i < 2005; i++) {
      for (int mon = 0; mon < 12; mon++) {
        //ibm.add(new Month(mon+1,i),new Double(400-Math.random()*100));
        ibm.add(new TimeSeriesDataItem(new Day(1, mon + 1, i),new Double(500 + Math.random() * 100)));
       }
    }TimeSeries king = new TimeSeries("东软");
    for (int i = 1999; i < 2005; i++) {
      for (int mon = 0; mon < 12; mon++) {
        //ibm.add(new Month(mon+1,i),new Double(400-Math.random()*100));
        king.add(new TimeSeriesDataItem(new Day(1, mon + 1, i),new Double(500 + Math.random() * 100)));
      }
    }
    //时间曲线数据集合
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(ca);
    dataset.addSeries(ibm);
    dataset.addSeries(king);
    //dataset.addSeries(jpy);
    //dataset.addSeries(mav);
    //时间曲线元素
    JFreeChart chart = ChartFactory.createTimeSeriesChart(title,domain,range,dataset,true,true,false);
    // then customise it a little...
    TextTitle subtitle = new TextTitle(subtitleStr, new Font("黑体", Font.BOLD, 12));
    chart.addSubtitle(subtitle);
    chart.setTitle(new TextTitle(title, new Font("隶书", Font.ITALIC, 15)));
    //pie.setSeriesLabelFont(new Font("黑体", Font.BOLD, 15));
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));//生成物理文件方式
        FileOutputStream fos_jpg = null;
        String ProgRunPath = request.getSession().getServletContext().getRealPath(""); //程序运行物理地址
        String ChartImageFileName = "testjfc.jpg";
        try
        {
          System.out.println(ProgRunPath+"/"+ChartImageFileName);
          fos_jpg = new FileOutputStream(ProgRunPath+"/"+ChartImageFileName);
          //按指定参数保存成图表文件-------(文件名,宽,高,会话ID)
          org.jfree.chart.ChartUtilities.writeChartAsJPEG(fos_jpg, chart, 1280, 600);
        }
        catch(Exception ex)
        {
          System.out.println(ex.toString());
        }
        finally
        {
          try
          {
            fos_jpg.close();
          }
          catch (Exception e)
          {}
        }
    out.println("<img src='"+ChartImageFileName+"' border=0 usemap="+ChartImageFileName+">");
    %>
      

  2.   

    在JFreeChart的API当中找关于 Renderer 的内容,它是用来设置显示选项的。
      

  3.   

    谢谢denghan(很久没来ASP版了) ……我不是楼主……
      

  4.   

    楼主知道怎么像http://glgq.com/images/line.gif一样,给每个顶点都加个点来表示么?像我的图里就有连续三个点的值一样——变成一条直线,第二个点看不到了……