Jfreechart显示数据点图表(线上可以显示点数据)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Jfreechart显示数据点图表(线上可以显示点数据)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                Jfreechart顯示數(shù)據(jù)點圖表
 
?
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;/**構造函數(shù),初始化**/public HealthLineTao(String stockId, String stockName){super();this.stockId = stockId;this.stockName = stockName;}private static XYDataset getDataSetHeight(){TimeSeries timeSeries1 = new TimeSeries("身高(cm)");//時間曲線數(shù)據(jù)集合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(){//時間曲線數(shù)據(jù)集合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();//設置網(wǎng)格背景顏色plot.setBackgroundPaint(Color.white);plot.setOutlineVisible(true);plot.setOutlinePaint(Color.magenta);//設置網(wǎng)格豎線顏色plot.setDomainGridlinePaint(Color.pink); // plot.setDomainGridlinesVisible(false);//設置網(wǎng)格橫線顏色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);/*--柱狀圖startXYBarRenderer 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();//設置曲線是否顯示數(shù)據(jù)點 // xylineandshaperenderer.setBaseShapesVisible(true); // xylineandshaperenderer.setSeriesShapesVisible(0, true); // xylineandshaperenderer.setSeriesShapesVisible(1, true);//設置曲線顯示各數(shù)據(jù)點的值 // 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基本的用法实例(一)
- 下一篇: sql的limit用法
