我在柱图上面可以显示顶点数据,但是在线图中这个方法不能用了,请问用哪个类来实现线图的顶点数据。CategoryPlot   plot   =   chart.getCategoryPlot();
            BarRenderer3D   renderer   =   new   BarRenderer3D();
            //显示每个柱的数值,并修改该数值的字体属性
            renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
            renderer.setItemLabelFont(new   Font("黑体",   Font.PLAIN,   12));
            renderer.setItemLabelsVisible(true);
            plot.setRenderer(renderer);这是柱图的实现顶点数据的方法和类,请问线图的怎么实现,不是曲线图。

解决方案 »

  1.   

    package Servlet;import java.awt.Color;
    import java.io.IOException;
    import java.sql.ResultSet;
    import java.text.NumberFormat;
    import java.text.SimpleDateFormat;import javax.servlet.*;
    import javax.servlet.http.HttpServlet;import org.jfree.data.time.Day;import org.jfree.data.time.TimeSeries;
    import org.jfree.data.time.TimeSeriesCollection;
    import org.jfree.data.xy.XYDataset;
    import org.jfree.date.SerialDate;
    import org.jfree.ui.RectangleInsets;
    import org.jfree.chart.*;
    import org.jfree.chart.axis.DateAxis;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.axis.ValueAxis;
    import org.jfree.chart.labels.StandardXYToolTipGenerator;
    import org.jfree.chart.plot.ValueMarker;
    import org.jfree.chart.plot.XYPlot;
    import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
    import org.jfree.chart.urls.TimeSeriesURLGenerator;import java.util.*;
    import java.sql.*;import DB.jdbc_DB;public class LineChart extends HttpServlet implements
    ChartMouseListener { private static final long serialVersionUID = 1L; static ResultSet rs; public void service(ServletRequest req, ServletResponse res)  
    throws ServletException, IOException { jdbc_DB d = new jdbc_DB();
    rs = jdbc_DB.query("select * from jfreechart");
    res.setContentType("image/jpeg");
    TimeSeriesCollection workTime = getWorkTimeDataset();
    JFreeChart chart = createChart(workTime); ChartUtilities.writeChartAsJPEG(res.getOutputStream(), 100, chart, 800,
    500, null);
    } private JFreeChart createChart(XYDataset dataset) { JFreeChart chart = ChartFactory.createTimeSeriesChart("従業員の労働時間統計", // title
    "データ", // x-axis label
    "日の勤務時間", // y-axis label
    dataset, // data
    true, // create legend?
    true, // generate tooltips?
    false // generate URLs?
    ); XYPlot plot = (XYPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);
    plot.setWeight(10);
     ValueMarker valueer = new ValueMarker(200D);
     plot.addRangeMarker(valueer);

    DateAxis axis = (DateAxis) plot.getDomainAxis();
    axis.setDateFormatOverride(new SimpleDateFormat("yy/MM/dd"));
    //   Create tooltip and URL generators
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.UK); StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
    StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                    sdf, NumberFormat.getInstance()); //  Create the chart object
    NumberAxis valueAxis = new NumberAxis("");
    valueAxis.setAutoRangeIncludesZero(false);  // override default
            StandardXYItemRenderer renderer = new StandardXYItemRenderer(
                    StandardXYItemRenderer.LINES + StandardXYItemRenderer.SHAPES,
                    ttg, null);
    return chart; } public TimeSeriesCollection getWorkTimeDataset() {
    TimeSeries s1 = new TimeSeries("彭立", Day.class);
    TimeSeries s2 = new TimeSeries("張誉婉", Day.class);
    // TimeSeries s3 = new TimeSeries("李永", Day.class); Day current = new Day(1, SerialDate.JANUARY, 2001);
    try {
    while (rs.next()) {
      s1.add(current, Double.parseDouble(rs.getString(2)));
    s2.add(current,Double.parseDouble(rs.getString(3)));
    // s3.add(new Day(d.get(Calendar.DAY_OF_MONTH),
    // d.get(Calendar.MONTH), d.get(Calendar.YEAR)),
    // Double.parseDouble(rs.getString("z")));
    current = (Day) current.next();
    }
            }
    catch (Exception e) {
    System.out.print("SQLEXCEPTION" + e);
    }
    jdbc_DB.closeconn();
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(s1);
    dataset.addSeries(s2);
    // dataset.addSeries(s3); dataset.setDomainIsPointsInTime(true); return dataset;
    }
      

  2.   


    StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
    StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                    sdf, NumberFormat.getInstance());
    这句话最重要 
    线型图,柱状图 用的方式是不一样的 
    上百度去查  很多这方面的
    实在查不到再给我发mail 吧 
    [email protected]
    有时间帮你看看