使用jfreechart画图问题 我现在使用jfreechart包能够实现画图,能够画出如下图效果但是我希望能够实现下面图的功能可以增加两条警戒线,不知道怎么实现,希望哪位高人能够指点指点,感激不尽。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你个demoimport java.awt.Color;import java.awt.Dimension;import javax.swing.JPanel;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.plot.ValueMarker;import org.jfree.chart.plot.XYPlot;import org.jfree.data.xy.XYDataset;import org.jfree.data.xy.XYSeries;import org.jfree.data.xy.XYSeriesCollection;import org.jfree.ui.ApplicationFrame;import org.jfree.ui.RectangleAnchor;import org.jfree.ui.RefineryUtilities;import org.jfree.ui.TextAnchor;public class LineChartDemo extends ApplicationFrame { public LineChartDemo(String s) { super(s); JPanel jpanel = createDemoPanel(); jpanel.setPreferredSize(new Dimension(500, 270)); setContentPane(jpanel); } private static JFreeChart createChart(XYDataset xydataset) { JFreeChart jfreechart = ChartFactory.createXYLineChart("Demo", "X", "Y", xydataset, PlotOrientation.VERTICAL, true, true, false); XYPlot xyplot = jfreechart.getXYPlot(); ValueAxis valueaxis = xyplot.getRangeAxis(); valueaxis.setRange(-30.0D, 30D); valueaxis.setAutoRange(false); ValueMarker valueer = new ValueMarker(20D); valueer.setPaint(Color.red); valueer.setLabel("阈值1"); valueer.setLabelAnchor(RectangleAnchor.RIGHT); valueer.setLabelTextAnchor(TextAnchor.CENTER_RIGHT); xyplot.addRangeMarker(valueer); return jfreechart; } public static JPanel createDemoPanel() { JFreeChart jfreechart = createChart(createDataset()); return new ChartPanel(jfreechart); } public static XYDataset createDataset() { XYSeriesCollection xyseriescollection = new XYSeriesCollection(); XYSeries xyseries = new XYSeries("Series 1"); xyseries.add(0.0D, 2D); xyseries.add(9D, 13D); xyseries.add(18D, 9D); xyseries.add(27D, 8D); xyseries.add(18D, 8D); xyseriescollection.addSeries(xyseries); return xyseriescollection; } public static void main(String args[]) { LineChartDemo linechartdemo = new LineChartDemo("Demo"); linechartdemo.pack(); RefineryUtilities.centerFrameOnScreen(linechartdemo); linechartdemo.setVisible(true); }} 我咋看着rumlee这名字这么眼熟,原来上个礼拜见过你的帖 加到右边可以是可以,不过没有你的颜色等的效果,你可以操作LegendTitle 还是多画几条线吧或者你再重写jfreechart的类用jfreechart的api应该是画不出这样的图形的,它的ValueMaker类型只有三种:ValueMarker,IntervalMarker,CategoryMarker没有哪一种是可以画出这个效果来的 jfreechart功能强大自不必说,但如何做到它的效果需要不断深入的学习,这是我的体会。 正在想搞个警戒线,谢谢楼主和peng3696的分享,学习中。 excel 数据库设计的问题 请大拿指点 找音乐播放器和视频播放器源代码 看书解答不了的JAVA问题 运行java程序时出现错误!! 文件读写问题 窗体固定 如何使用java测网速啊 在一个自己建的类中用到了out.println(),怎么解释? 哪里有Oreilly出版社《Java安全》第二版的电子版下载?急!!! InputStream如何判断数据已经读取结束呢? 在学StringBuffer时候里面有说,只要将连接运算符+与字符串一起使用,就会自动创建StringBuffer对象是什么意思,能给举个例子吗 请伸手--关于java里内部类参数传递的困惑
import java.awt.Dimension;import javax.swing.JPanel;import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.ValueMarker;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleAnchor;
import org.jfree.ui.RefineryUtilities;
import org.jfree.ui.TextAnchor;public class LineChartDemo extends ApplicationFrame { public LineChartDemo(String s) {
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(jpanel);
} private static JFreeChart createChart(XYDataset xydataset) {
JFreeChart jfreechart = ChartFactory.createXYLineChart("Demo", "X",
"Y", xydataset, PlotOrientation.VERTICAL, true, true, false);
XYPlot xyplot = jfreechart.getXYPlot();
ValueAxis valueaxis = xyplot.getRangeAxis();
valueaxis.setRange(-30.0D, 30D);
valueaxis.setAutoRange(false); ValueMarker valueer = new ValueMarker(20D);
valueer.setPaint(Color.red);
valueer.setLabel("阈值1");
valueer.setLabelAnchor(RectangleAnchor.RIGHT);
valueer.setLabelTextAnchor(TextAnchor.CENTER_RIGHT);
xyplot.addRangeMarker(valueer);
return jfreechart;
} public static JPanel createDemoPanel() {
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
} public static XYDataset createDataset() {
XYSeriesCollection xyseriescollection = new XYSeriesCollection();
XYSeries xyseries = new XYSeries("Series 1");
xyseries.add(0.0D, 2D);
xyseries.add(9D, 13D);
xyseries.add(18D, 9D);
xyseries.add(27D, 8D);
xyseries.add(18D, 8D);
xyseriescollection.addSeries(xyseries);
return xyseriescollection;
} public static void main(String args[]) {
LineChartDemo linechartdemo = new LineChartDemo("Demo");
linechartdemo.pack();
RefineryUtilities.centerFrameOnScreen(linechartdemo);
linechartdemo.setVisible(true);
}
}
用jfreechart的api应该是画不出这样的图形的,它的ValueMaker类型只有三种:ValueMarker,IntervalMarker,CategoryMarker
没有哪一种是可以画出这个效果来的