我在柱图上面可以显示顶点数据,但是在线图中这个方法不能用了,请问用哪个类来实现线图的顶点数据。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);这是柱图的实现顶点数据的方法和类,请问线图的怎么实现,不是曲线图。
BarRenderer3D renderer = new BarRenderer3D();
//显示每个柱的数值,并修改该数值的字体属性
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelFont(new Font("黑体", Font.PLAIN, 12));
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);这是柱图的实现顶点数据的方法和类,请问线图的怎么实现,不是曲线图。
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;
}
StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
sdf, NumberFormat.getInstance());
这句话最重要
线型图,柱状图 用的方式是不一样的
上百度去查 很多这方面的
实在查不到再给我发mail 吧
[email protected]
有时间帮你看看