Jfreechart显示数据点图表(线上可以显示点数据)
来源:互联网 发布:java线程池工作原理 编辑:程序博客网 时间:2024/04/28 18:04
Jfreechart显示数据点图表
package com.ccxe.layer.code;import java.awt.Color;import java.awt.Font;import java.awt.RenderingHints;import java.io.FileOutputStream;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.Axis;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.labels.StandardXYToolTipGenerator;import org.jfree.chart.plot.XYPlot;import org.jfree.chart.renderer.xy.StandardXYItemRenderer;import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;import org.jfree.chart.title.TextTitle;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.ui.RectangleInsets;public class HealthLineTao { public static void main(String[] args) { HealthLineTao healthline=new HealthLineTao("xiaotao","小淘"); healthline.CreatePicture(); } String stockId; String stockName; private XYLineAndShapeRenderer localObject; /**构造函数,初始化**/ public HealthLineTao(String stockId, String stockName) { super(); this.stockId = stockId; this.stockName = stockName; } private static XYDataset getDataSetHeight() { TimeSeries timeSeries1 = new TimeSeries("身高(cm)"); //时间曲线数据集合 TimeSeriesCollection lineDataset = new TimeSeriesCollection(); timeSeries1.add(new Day(22, 7, 2010), 46.0D); timeSeries1.add(new Day(22, 8, 2010), 58.0D); timeSeries1.add(new Day(22, 9, 2010), 60.0D); timeSeries1.add(new Day(22, 10, 2010), 61.0D); timeSeries1.add(new Day(22, 11, 2010), 63.0D); timeSeries1.add(new Day(22, 12, 2010), 64.0D); timeSeries1.add(new Day(22, 1, 2011), 66.0D); timeSeries1.add(new Day(22, 2, 2011), 68.0D); timeSeries1.add(new Day(22, 3, 2011), 70.0D); timeSeries1.add(new Day(22, 4, 2011), 71.0D); timeSeries1.add(new Day(22, 5, 2011), 72.0D); timeSeries1.add(new Day(22, 6, 2011), 73.0D); timeSeries1.add(new Day(22, 7, 2011), 74.8D); timeSeries1.add(new Day(22, 8, 2011), 75.0D); timeSeries1.add(new Day(22, 9, 2011), 76.0D); timeSeries1.add(new Day(22, 10, 2011), 80.0D); lineDataset.addSeries(timeSeries1); return lineDataset; } private static XYDataset getDataSetWeight() { //时间曲线数据集合 TimeSeriesCollection lineDataset = new TimeSeriesCollection(); TimeSeries timeSeries2 = new TimeSeries("体重(kg)"); timeSeries2.add(new Day(22, 7, 2010), 3.1D); timeSeries2.add(new Day(22, 8, 2010), 4.3D); timeSeries2.add(new Day(22, 9, 2010), 5.3D); timeSeries2.add(new Day(22, 10, 2010), 6.8D); timeSeries2.add(new Day(22, 11, 2010), 7.0D); timeSeries2.add(new Day(22, 12, 2010), 7.2D); timeSeries2.add(new Day(22, 1, 2011), 7.4D); timeSeries2.add(new Day(22, 2, 2011), 7.6D); timeSeries2.add(new Day(22, 3, 2011), 7.8D); timeSeries2.add(new Day(22, 4, 2011), 8.0D); timeSeries2.add(new Day(22, 5, 2011), 8.4D); timeSeries2.add(new Day(22, 6, 2011), 8.6D); timeSeries2.add(new Day(22, 7, 2011), 8.7D); timeSeries2.add(new Day(22, 8, 2011), 9.0D); timeSeries2.add(new Day(22, 9, 2011), 9.2D); timeSeries2.add(new Day(22, 10, 2011), 10.0D); lineDataset.addSeries(timeSeries2); return lineDataset; } @SuppressWarnings("deprecation") public void CreatePicture() { XYDataset dataset=getDataSetHeight(); JFreeChart chart = ChartFactory.createTimeSeriesChart("分时图", "时间","身高(cm)", dataset, true, true, false); XYPlot plot = (XYPlot) chart.getPlot(); //设置网格背景颜色 plot.setBackgroundPaint(Color.white); plot.setOutlineVisible(true); plot.setOutlinePaint(Color.magenta); //设置网格竖线颜色 plot.setDomainGridlinePaint(Color.pink);// plot.setDomainGridlinesVisible(false); //设置网格横线颜色 plot.setRangeGridlinePaint(Color.pink); //设置曲线图与xy轴的距离 plot.setAxisOffset(new RectangleInsets(10D, 10D, 10D, 10D)); //对X轴做操作 ValueAxis domainAxis = plot.getDomainAxis(); domainAxis.setTickLabelsVisible(true);//X轴的标题文字是否显示 domainAxis.setTickMarksVisible(true); domainAxis.setAutoRange(true); // //对Y轴做操作 ValueAxis rAxisL = plot.getRangeAxis(); ((Axis) rAxisL).setTickLabelsVisible(true);//Y轴的标题文字是否显示 ((NumberAxis) rAxisL).setAutoRangeStickyZero(true); //身高 XYLineAndShapeRenderer localXYItemRenderer = (XYLineAndShapeRenderer)plot.getRenderer(); localXYItemRenderer.setBaseShapesVisible(true); localXYItemRenderer .setBaseToolTipGenerator(new StandardXYToolTipGenerator( "{0}: ({1}, {2})", new SimpleDateFormat("d-MMM-yyyy"), new DecimalFormat("0.00"))); //体重 NumberAxis localNumberAxis2 = new NumberAxis("体重(kg)"); localNumberAxis2.setUpperMargin(1.0D); plot.setRangeAxis(1, localNumberAxis2); plot.setDataset(1, getDataSetWeight()); plot.setRangeAxis(1, localNumberAxis2); plot.mapDatasetToRangeAxis(1, 1); StandardXYItemRenderer xYItemRenderer = new StandardXYItemRenderer(); xYItemRenderer.setBaseShapesVisible(true); xYItemRenderer .setBaseToolTipGenerator(new StandardXYToolTipGenerator( "{0}: ({1}, {2})", new SimpleDateFormat("d-MMM-yyyy"), new DecimalFormat("0.00"))); plot.setRenderer(1, xYItemRenderer); ChartUtilities.applyCurrentTheme(chart); /*--柱状图start XYBarRenderer localXYBarRenderer = new XYBarRenderer(0.2D); localXYBarRenderer .setBaseToolTipGenerator(new StandardXYToolTipGenerator( "{0}: ({1}, {2})", new SimpleDateFormat("d-MMM-yyyy"), new DecimalFormat("0,000.00"))); plot.setRenderer(1, localXYBarRenderer); ChartUtilities.applyCurrentTheme(chart); localXYBarRenderer.setBarPainter(new StandardXYBarPainter()); localXYBarRenderer.setShadowVisible(false); 柱状图end--*/ // //对Y轴做操作 ValueAxis rAxisR = plot.getRangeAxis(1); ((Axis) rAxisR).setTickLabelsVisible(true);//Y轴的标题文字是否显示 ((NumberAxis) rAxisR).setAutoRangeStickyZero(true); // XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot.getRenderer(); //设置曲线是否显示数据点// xylineandshaperenderer.setBaseShapesVisible(true);// xylineandshaperenderer.setSeriesShapesVisible(0, true);// xylineandshaperenderer.setSeriesShapesVisible(1, true); //设置曲线显示各数据点的值// XYItemRenderer xyitem = plot.getRenderer(); // xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));// xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());// xyitem.setBaseItemLabelFont(new Font("Dialog", 1, 140));// xyitem.setBaseItemLabelsVisible(false);// plot.setRenderer(xyitem);//将修改后的属性值保存到图中 /*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/ chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); //设置X轴坐标上的文字 domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11)); //设置X轴的标题文字 domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); //设置Y轴坐标上的文字 rAxisL.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12)); //设置Y轴的标题文字 rAxisL.setLabelFont(new Font("黑体", Font.PLAIN, 12)); //设置Y轴坐标上的文字 rAxisR.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12)); //设置Y轴的标题文字 rAxisR.setLabelFont(new Font("黑体", Font.PLAIN, 12)); //底部汉字乱码的问题 chart.getLegend().setItemFont(new Font("宋体",Font.PLAIN,12)); //设置子标题 String subtitletext=stockName+" "+"英文拼音("+stockId+")"; TextTitle subtitle = new TextTitle(subtitletext, new Font("隶书", Font.ITALIC, 15)); chart.addSubtitle(subtitle); //设置主标题// String title=stockName+" "+"英文拼音("+stockId+")"; String title="2010年7月——2011年11月成长指标"; String filename="HealthLine_"+stockName; chart.setTitle(new TextTitle(title, new Font("黑体", Font.BOLD, 16))); chart.setAntiAlias(true);//字体模糊边界 FileOutputStream fos_jpg = null; /* 导出分时图的jpg格式的图片*/ try { fos_jpg = new FileOutputStream("D:"+filename+".jpg"); ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 1024, 480, null); fos_jpg.close(); } catch (Exception e) { } }}
- Jfreechart显示数据点图表(线上可以显示点数据)
- Jfreechart生成曲线图数据点显示数据值
- jfreechart 数据点显示消息0点显示为上午12点,12点显示为下午12点
- 分类折线图(可以显示数据点数据)
- jfreechart折线图如何在折点旁显示折点数据
- jfreechart+sql实现时间曲线图(显示曲线数据点)
- 2011-07-04 22:11 Jfreechart生成曲线图数据点显示数据值
- Jfreechart生成曲线图、数据点
- 鼠标移动到Chart控件图表数据点处,显示相关信息
- js数据图表显示
- 点云数据读取及显示
- jfreechart 饼形图 显示数据精确度
- QlikView图表显示同比数据
- Ext图表上显示数据
- JFreechart 时序图 显示x轴数据 横轴数据显示
- JfreeChart连接数据库数据显示柱状图
- 使JfreeChart横坐标数据换行显示
- jfreechart图表的数据刷新
- server report 经典
- 在 Objective-C 中解析 html 的代码
- oracle三张表左连接
- DHCP Options and BOOTP Vendor Extensions
- android2.3对dex进行preopt优化
- Jfreechart显示数据点图表(线上可以显示点数据)
- 如何自己给电动车电池补水?DIY!超详细多图教程
- 基于http live streaming视频直播在android上的实现(版本更新,支持高清AAC视频)
- 经典
- Linsolve——线性解决方案
- CryEngine3中的AI组件对象
- HDU 1029 高频词统计
- Socket编程( Bind(): Address already in use)
- 非阻塞 Socoket 编程