日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用JFreeChart绘制散点图

發布時間:2025/5/22 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用JFreeChart绘制散点图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為項目需要所以開始搞Java和JFreeChart類庫…真蛋疼,看了51cto的該類庫專題:http://developer.51cto.com/art/201112/309201.htm,這是最基本的,不懂JFreeChart的朋友請先移步此處。

很不錯,講得比較清楚,只是和官方發布的demo有些重合了吧,都是pieChart,敢換一個別的圖嗎?

下面我把畫圖所必須的三個模塊列出來,其他的部分就不一一提供了,有需要的可以看看:

  • //加載dataset,具體的業務邏輯可以不用理會?
  • 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)?{?
  • ????//title,?legend,?plot?三個部分設置字體的方法分別如下:???
  • ???????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绘制散点图的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。