生活随笔
收集整理的這篇文章主要介紹了
使用JFreeChart绘制散点图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
因為項目需要所以開始搞Java和JFreeChart類庫…真蛋疼,看了51cto的該類庫專題:http://developer.51cto.com/art/201112/309201.htm,這是最基本的,不懂JFreeChart的朋友請先移步此處。
很不錯,講得比較清楚,只是和官方發布的demo有些重合了吧,都是pieChart,敢換一個別的圖嗎?
下面我把畫圖所必須的三個模塊列出來,其他的部分就不一一提供了,有需要的可以看看:
?public?static?XYDataset?createxydataset(ArrayList<LineInfo>?xydatalist,?ArrayListMultimap<Integer,?Integer>?tabBat)?{?????DefaultXYDataset??dataset?=?new?DefaultXYDataset();?????LineInfo?tabTmp?=?xydatalist.get(0);?????int?numTmp?=?tabTmp.getMeterNum();?????Set<Integer>?allKey?=?tabBat.keySet();?????Iterator<Integer>?it?=?allKey.iterator();?????int?keyTmp?=?0;?????while(it.hasNext())?????{?????????keyTmp?=?it.next();?????????if(tabBat.containsEntry(keyTmp,?numTmp))?????????????break;?????}?????List<Integer>?allNum?=?tabBat.get(keyTmp);?????int?allNumSize?=?allNum.size();?//data是數據的核心????double[][]?data?=?new?double[2][allNumSize];?????it?=?allNum.iterator();?????Iterator<LineInfo>?it2?=?xydatalist.iterator();?????int?tmp?=?0,?count?=?0;?????LineInfo?lineTmp?=?new?LineInfo();?????while(it.hasNext())?????{?????????tmp?=?it.next();?????????it2?=?xydatalist.iterator();?????????while(it2.hasNext())??????????{?????????????lineTmp?=?it2.next();?????????????if(tmp?==?lineTmp.getMeterNum())?????????????????break;?????????}?????????data[0][count]?=?lineTmp.getIntercept();?????????data[1][count]?=?lineTmp.getSlope();?????????count++;?????}?//addSeries里的第一個參數我還不太懂,從生成的圖表看,就是圖表下的說明文字而已????dataset.addSeries("table",?data);?????return?dataset;?}???public?static?JFreeChart?createChart(XYDataset?xydataset,?String?title,?String?xAxis,?String?yAxis)?{?????JFreeChart?scatterChart?=?ChartFactory.createScatterPlot(title,?xAxis,?yAxis,?xydataset,?PlotOrientation.VERTICAL,?true,?false,?false);??????return?scatterChart;?}??public?static?void?drawScatterChart(JFreeChart?scatterChart,?String?title,?String?noDataMsg)?{?????????????TextTitle?textTitle?=?scatterChart.getTitle();??????????textTitle.setFont(new?Font("宋體",?Font.BOLD,?20));??????????LegendTitle?legend?=?scatterChart.getLegend();??????????if?(legend?!=?null)????????{??????????????legend.setItemFont(new?Font("宋體",?Font.BOLD,?20));????????}????????XYPlot?scatterPlot?=?scatterChart.getXYPlot();??????????scatterPlot.setNoDataMessage(noDataMsg);//以下三行是畫圖????ChartFrame?scatterFrame?=?new?ChartFrame(title,scatterChart);???????scatterFrame.pack();??????scatterFrame.setVisible(true);??}? 總的來說,還是蠻簡單的,要畫其他的圖去查一下API就可以了。
轉載于:https://blog.51cto.com/hector/926904
總結
以上是生活随笔為你收集整理的使用JFreeChart绘制散点图的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。