请问在jfreechart线图中,如何直接显示每个坐标点的数据,谢谢!!急

fanjw0923 2006-03-24 04:07:54
我在柱图上面可以显示顶点数据,但是在线图中这个方法不能用了,请问用哪个类来实现线图的顶点数据。

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);

这是柱图的实现顶点数据的方法和类,请问线图的怎么实现,不是曲线图。
...全文
311 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
congliu 2006-03-30
  • 打赏
  • 举报
回复
学习!
已经收藏
foreverlovecs 2006-03-28
  • 打赏
  • 举报
回复

StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
sdf, NumberFormat.getInstance());


这句话最重要
线型图,柱状图 用的方式是不一样的
上百度去查 很多这方面的
实在查不到再给我发mail 吧
liyong@fc-cn.com
有时间帮你看看
foreverlovecs 2006-03-28
  • 打赏
  • 举报
回复
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 valuemarker = new ValueMarker(200D);
plot.addRangeMarker(valuemarker);

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;
}

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧