各位大侠帮帮忙 jfreechart实现曲线图,怎么显示曲线上数据点的数据值?----急 jfreechart实现曲线图,怎么显示曲线上数据点的数据值? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to:imA(男的不会,会的不男) 这两个都行,怎么实现啊? 如果是当鼠标移动到的时候再显示,只要设置一下提示就可以了,大部分默认都是带的,像下面代码:import java.awt.BasicStroke;import java.awt.Color;import java.awt.Dimension;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.renderer.category.LineAndShapeRenderer;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.ui.ApplicationFrame;import org.jfree.ui.RefineryUtilities;public class LineChartDemo1 extends ApplicationFrame{ public LineChartDemo1(final String title) { super(title); final CategoryDataset dataset = createDataset(); final JFreeChart chart = createChart(dataset); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new Dimension(500, 270)); setContentPane(chartPanel); } public static CategoryDataset createDataset() { final String series1 = "First"; final String series2 = "Second"; final String series3 = "Third"; final String type1 = "Type 1"; final String type2 = "Type 2"; final String type3 = "Type 3"; final String type4 = "Type 4"; final String type5 = "Type 5"; final String type6 = "Type 6"; final String type7 = "Type 7"; final String type8 = "Type 8"; final DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1.0, series1, type1); dataset.addValue(4.0, series1, type2); dataset.addValue(3.0, series1, type3); dataset.addValue(5.0, series1, type4); dataset.addValue(5.0, series1, type5); dataset.addValue(7.0, series1, type6); dataset.addValue(7.0, series1, type7); dataset.addValue(8.0, series1, type8); dataset.addValue(5.0, series2, type1); dataset.addValue(7.0, series2, type2); dataset.addValue(6.0, series2, type3); dataset.addValue(8.0, series2, type4); dataset.addValue(4.0, series2, type5); dataset.addValue(4.0, series2, type6); dataset.addValue(2.0, series2, type7); dataset.addValue(1.0, series2, type8); dataset.addValue(4.0, series3, type1); dataset.addValue(3.0, series3, type2); dataset.addValue(2.0, series3, type3); dataset.addValue(3.0, series3, type4); dataset.addValue(6.0, series3, type5); dataset.addValue(3.0, series3, type6); dataset.addValue(4.0, series3, type7); dataset.addValue(3.0, series3, type8); return dataset; } private JFreeChart createChart(final CategoryDataset dataset) { final JFreeChart chart = ChartFactory.createLineChart( "Line Chart Demo 1", // chart title "Type", // domain axis label "Value", // range axis label dataset, // data PlotOrientation.VERTICAL, // orientation true, // include legend true, // tooltips false // urls ); chart.setBackgroundPaint(Color.white); final CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.setBackgroundPaint(Color.lightGray); plot.setRangeGridlinePaint(Color.white); final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); rangeAxis.setAutoRangeIncludesZero(true); final LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot .getRenderer(); renderer.setShapesFilled(false); renderer.setUseFillPaint(false); renderer.setSeriesStroke(0, new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] { 10.0f, 6.0f }, 0.0f)); renderer.setSeriesStroke(1, new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] { 6.0f, 6.0f }, 0.0f)); renderer.setSeriesStroke(2, new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] { 2.0f, 6.0f }, 0.0f)); return chart; } public static void main(final String[] args) { final LineChartDemo1 demo = new LineChartDemo1("Line Chart Demo"); demo.pack(); RefineryUtilities.centerFrameOnScreen(demo); demo.setVisible(true); }} 那些代码是设置提示的;另外我是先把生成.jpg文件,再在页面上显示出来,鼠标移上去不会显示数据啊下面是代码,这个怎么改能实现上面的功能<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%><%@ page import="org.jfree.chart.*" %><%@ page import="org.jfree.chart.axis.*" %><%@ page import="org.jfree.chart.plot.*" %><%@ page import="org.jfree.data.*" %><%@ page import="org.jfree.data.time.*" %><%@ page import="org.jfree.chart.title.*" %><%@ page import="java.awt.Font" %><%@ page import="java.awt.GradientPaint" %><%@ page import="java.io.File" %><%@ page import="java.awt.Color" %><%@ page import="org.jfree.chart.renderer.xy.XYLineAndShapeRenderer" %><%@ page import="org.jfree.ui.RectangleAnchor" %><%@ page import="org.jfree.ui.RectangleInsets" %><%@ page import="org.jfree.chart.renderer.xy.XYItemRenderer" %><%//曲线图标题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))); }}//时间曲线数据集合TimeSeriesCollection dataset = new TimeSeriesCollection();dataset.addSeries(ca);//时间曲线元素JFreeChart chart = ChartFactory.createTimeSeriesChart(title,domain,range,dataset,true,true,false);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));XYPlot plot = (XYPlot) chart.getPlot();plot.setBackgroundPaint(Color.white);//设置网格背景颜色plot.setDomainGridlinePaint(Color.pink);//设置网格竖线颜色plot.setRangeGridlinePaint(Color.pink);//设置网格横线颜色plot.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 10D));//设置曲线图与xy轴的距离XYItemRenderer xyitem = plot.getRenderer();xyitem.setItemLabelsVisible(true);String rfname = "kk.jpeg";String fileName = "d:/" + rfname;try { ChartUtilities.saveChartAsJPEG(new File(fileName), 1f, chart, 600, 600); } catch (Exception e) { System.out.print("....Cant't Create image File" + e.toString());}%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> This is my JSP page. <br> <IMG src="d:/kk.jpeg"> </body></html> 搞JFreeChart确实搞的头昏,又没有帮助文档,只能看源代码 各位要怎么实现上面的功能啊?to:imA(男的不会,会的不男) 你那个代码是java生成一个窗口可以显示数据,但是我是要在网页上显示图片,怎么实现这个功能,知道吗? http://amozon.javaeye.com/blog/35167 JFreeChart中文API 各位大哥大姐叔叔阿姨都来说说啊 懂java线程中断的朋友帮忙看看 简单java题,帮忙看看! 关于jdk5.0的多线程程序在Linux下不能运行的问题? 16进制字符串转化成int的问题 读取dbf文件出错,答对即给分 java socket进行交互数据的一点疑问 找出String中有多少个子String,有没有什么好办法.比如: String得到中有多少个"," 谢谢!!! 高分!!!think in java中的一道题(第八章27题),请高手帮助作一下。 请大家帮帮忙呀 为何两个相同的String,比较结果却是False?? 求一个遍例树的例子,谢谢!
这两个都行,怎么实现啊?
import java.awt.Color;
import java.awt.Dimension;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;public class LineChartDemo1 extends ApplicationFrame
{
public LineChartDemo1(final String title)
{
super(title);
final CategoryDataset dataset = createDataset();
final JFreeChart chart = createChart(dataset);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartPanel);
}
public static CategoryDataset createDataset()
{
final String series1 = "First";
final String series2 = "Second";
final String series3 = "Third";
final String type1 = "Type 1";
final String type2 = "Type 2";
final String type3 = "Type 3";
final String type4 = "Type 4";
final String type5 = "Type 5";
final String type6 = "Type 6";
final String type7 = "Type 7";
final String type8 = "Type 8";
final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, series1, type1);
dataset.addValue(4.0, series1, type2);
dataset.addValue(3.0, series1, type3);
dataset.addValue(5.0, series1, type4);
dataset.addValue(5.0, series1, type5);
dataset.addValue(7.0, series1, type6);
dataset.addValue(7.0, series1, type7);
dataset.addValue(8.0, series1, type8);
dataset.addValue(5.0, series2, type1);
dataset.addValue(7.0, series2, type2);
dataset.addValue(6.0, series2, type3);
dataset.addValue(8.0, series2, type4);
dataset.addValue(4.0, series2, type5);
dataset.addValue(4.0, series2, type6);
dataset.addValue(2.0, series2, type7);
dataset.addValue(1.0, series2, type8);
dataset.addValue(4.0, series3, type1);
dataset.addValue(3.0, series3, type2);
dataset.addValue(2.0, series3, type3);
dataset.addValue(3.0, series3, type4);
dataset.addValue(6.0, series3, type5);
dataset.addValue(3.0, series3, type6);
dataset.addValue(4.0, series3, type7);
dataset.addValue(3.0, series3, type8);
return dataset;
}
private JFreeChart createChart(final CategoryDataset dataset)
{
final JFreeChart chart = ChartFactory.createLineChart(
"Line Chart Demo 1", // chart title
"Type", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
chart.setBackgroundPaint(Color.white);
final CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setRangeGridlinePaint(Color.white);
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
final LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot
.getRenderer();
renderer.setShapesFilled(false);
renderer.setUseFillPaint(false);
renderer.setSeriesStroke(0, new BasicStroke(2.0f,
BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f,
new float[] { 10.0f, 6.0f }, 0.0f));
renderer.setSeriesStroke(1, new BasicStroke(2.0f,
BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f,
new float[] { 6.0f, 6.0f }, 0.0f));
renderer.setSeriesStroke(2, new BasicStroke(2.0f,
BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f,
new float[] { 2.0f, 6.0f }, 0.0f));
return chart;
}
public static void main(final String[] args)
{
final LineChartDemo1 demo = new LineChartDemo1("Line Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
另外我是先把生成.jpg文件,再在页面上显示出来,鼠标移上去不会显示数据啊下面是代码,这个怎么改能实现上面的功能<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page import="org.jfree.chart.*" %>
<%@ page import="org.jfree.chart.axis.*" %>
<%@ page import="org.jfree.chart.plot.*" %>
<%@ page import="org.jfree.data.*" %>
<%@ page import="org.jfree.data.time.*" %>
<%@ page import="org.jfree.chart.title.*" %>
<%@ page import="java.awt.Font" %>
<%@ page import="java.awt.GradientPaint" %>
<%@ page import="java.io.File" %>
<%@ page import="java.awt.Color" %>
<%@ page import="org.jfree.chart.renderer.xy.XYLineAndShapeRenderer" %>
<%@ page import="org.jfree.ui.RectangleAnchor" %>
<%@ page import="org.jfree.ui.RectangleInsets" %>
<%@ page import="org.jfree.chart.renderer.xy.XYItemRenderer" %>
<%
//曲线图标题
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)));
}
}//时间曲线数据集合
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(ca);
//时间曲线元素
JFreeChart chart = ChartFactory.createTimeSeriesChart(title,domain,range,dataset,true,true,false);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));XYPlot plot = (XYPlot) chart.getPlot();
plot.setBackgroundPaint(Color.white);//设置网格背景颜色
plot.setDomainGridlinePaint(Color.pink);//设置网格竖线颜色
plot.setRangeGridlinePaint(Color.pink);//设置网格横线颜色
plot.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 10D));//设置曲线图与xy轴的距离
XYItemRenderer xyitem = plot.getRenderer();
xyitem.setItemLabelsVisible(true);
String rfname = "kk.jpeg";
String fileName = "d:/" + rfname;try {
ChartUtilities.saveChartAsJPEG(new File(fileName), 1f, chart, 600, 600);
} catch (Exception e) {
System.out.print("....Cant't Create image File" + e.toString());
}%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
This is my JSP page. <br>
<IMG src="d:/kk.jpeg">
</body>
</html>
但是我是要在网页上显示图片,怎么实现这个功能,知道吗?