精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JFreeChart最佳實踐:散點圖

開發 后端
本文將介紹作者通過Java最佳圖形解決方案JFreeChart實現散點圖的詳細過程。

用JfreeChart畫散點圖,查看JfreeChart的Demo,寫的都挺復雜的,關鍵是Demo中把簡單的事情復雜化了,比如展示的例子是一個正弦曲線什么的,讓初次畫散點圖的我們摸不著頭腦。關鍵是他們得到數據集搞得太過復雜,后來想明白了,不就是二維數組嘛。想通了這一點,一切問題都解決了,不過,對于我們項目的特殊要求,并不是只畫幾個點那么簡單,還要加上區域范圍與文字說明,在查看文檔及自己摸索下,2天時間,終于搞定。下面分享一下成果,呵,還是有點成就感的。

首先,看畫圖的API,參數有:

ChartFactory.createScatterPlot(),其中,有一個xydataset,那么,我們先要知道這個xydataset是什么結構的,再看所需xydataset,散點圖,也就是單獨畫出點,也就是一個二維數據了,x ,y坐標嘛!

那么,先做好準備工作,***步,拿數據,這就不用啰嗦了,就是得到一個List也好,Set也行。

第二步,加載到數據集:

  1. /**  
  2.  *   
  3.  * @param xydatalist  
  4.  * @param bloods  
  5.  * @return  
  6.  */ 
  7.     public static XYDataset createxydataset(List<PressureBean> xydatalist,  
  8.             String bloods) {  
  9.         DefaultXYDataset xydataset = new DefaultXYDataset();  
  10.  
  11.         int size = xydatalist.size();  
  12.         double[][] datas = new double[2][size];  
  13.         for (int i = 0; i < size; i++) {  
  14.             PressureBean pres = xydatalist.get(i);  
  15.             int sys = pres.getSyspress();//收縮壓  
  16.             int dia = pres.getDiapress();//舒張壓  
  17.  
  18.             datas[0][i] = sys;  
  19.             datas[1][i] = dia;  
  20.         }  
  21.  
  22.         xydataset.addSeries(bloods, datas);  
  23.  
  24.         return xydataset;  
  25.  
  26.     } 

下一步,另外一個準備工作,畫圖方法:

  1. public static JFreeChart createChart(XYDataset xydataset,  
  2.             String bloodcattile, String shou, String shu, String nobloodData,  
  3.             String bloods, String nomal, String fore, String one, String two,  
  4.             List<PressureBean> list, Log log) {  
  5.  
  6.         // 有可能用戶在后面的版本中故意輸入不正常數值,但是為了保證圖片畫圖的完整,這里先計算  
  7.         // 用戶血壓值的***值。  
  8.         int maxpress = 160;  
  9.         int addmax = 20;  
  10.  
  11.         if (list != null && list.size() > 0) {  
  12.  
  13.             Iterator<PressureBean> it = list.iterator();  
  14.             while (it.hasNext()) {  
  15.                 PressureBean pres = it.next();  
  16.                   
  17.                 if (maxpress < pres.getDiapress()) {  
  18.                     maxpress = pres.getDiapress();  
  19.                 }  
  20.  
  21.                 if (maxpress < pres.getSyspress()) {  
  22.                     maxpress = pres.getSyspress();  
  23.                 }  
  24.             }  
  25.  
  26.             maxpress += addmax;  
  27.  
  28.  
  29.             log.info("high press value is =" + maxpress);  
  30.  
  31.         }  
  32.  
  33.         JFreeChart jfreechart = ChartFactory.createScatterPlot(bloodcattile,  
  34.                 shou, shu, xydataset, PlotOrientation.VERTICAL, truefalse,  
  35.                 false);  
  36.         jfreechart.setBackgroundPaint(Color.white);  
  37.         jfreechart.setBorderPaint(Color.GREEN);  
  38.         jfreechart.setBorderStroke(new BasicStroke(1.5f));  
  39.         XYPlot xyplot = (XYPlot) jfreechart.getPlot();  
  40.         xyplot.setNoDataMessage(nobloodData);  
  41.         xyplot.setNoDataMessageFont(new Font("", Font.BOLD, 14));  
  42.         xyplot.setNoDataMessagePaint(new Color(87149117));  
  43.  
  44.         xyplot.setBackgroundPaint(new Color(255253246));  
  45.         ValueAxis vaaxis = xyplot.getDomainAxis();  
  46.         vaaxis.setAxisLineStroke(new BasicStroke(1.5f));  
  47.  
  48.         ValueAxis va = xyplot.getDomainAxis(0);  
  49.         va.setAxisLineStroke(new BasicStroke(1.5f));  
  50.  
  51.         va.setAxisLineStroke(new BasicStroke(1.5f)); // 坐標軸粗細  
  52.         va.setAxisLinePaint(new Color(215215215)); // 坐標軸顏色  
  53.         xyplot.setOutlineStroke(new BasicStroke(1.5f)); // 邊框粗細  
  54.         va.setLabelPaint(new Color(101010)); // 坐標軸標題顏色  
  55.         va.setTickLabelPaint(new Color(102102102)); // 坐標軸標尺值顏色  
  56.         ValueAxis axis = xyplot.getRangeAxis();  
  57.         axis.setAxisLineStroke(new BasicStroke(1.5f));  
  58.  
  59.         XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer) xyplot  
  60.                 .getRenderer();  
  61.         xylineandshaperenderer.setSeriesOutlinePaint(0, Color.WHITE);  
  62.         xylineandshaperenderer.setUseOutlinePaint(true);  
  63.         NumberAxis numberaxis = (NumberAxis) xyplot.getDomainAxis();  
  64.         numberaxis.setAutoRangeIncludesZero(false);  
  65.         numberaxis.setTickMarkInsideLength(2.0F);  
  66.         numberaxis.setTickMarkOutsideLength(0.0F);  
  67.         numberaxis.setAxisLineStroke(new BasicStroke(1.5f));  
  68.         numberaxis.setUpperBound(maxpress);  
  69.         numberaxis.setLowerBound(60);//最小值設置為60  
  70.         NumberAxis numberaxis1 = (NumberAxis) xyplot.getRangeAxis();  
  71.         numberaxis1.setTickMarkInsideLength(2.0F);  
  72.         numberaxis1.setTickMarkOutsideLength(0.0F);  
  73.         numberaxis1.setUpperBound(105d);  
  74.         numberaxis1.setLowerBound(35);  
  75.         numberaxis1.setAxisLineStroke(new BasicStroke(1.5f));  
  76.  
  77.         // if (xydataset != null) {  
  78.         XYBoxAnnotation box = new XYBoxAnnotation(008959); //正常血壓所在區域內邊界  
  79.         XYBoxAnnotation box1 = new XYBoxAnnotation(0011979);//高血壓前期所在區域內邊界  
  80.         XYBoxAnnotation box2 = new XYBoxAnnotation(0013989);//高血壓一期所在區域內邊界  
  81.         XYBoxAnnotation box3 = new XYBoxAnnotation(0015999);//高血壓二期所在區域內邊界  
  82.         XYTextAnnotation text1 = new XYTextAnnotation(nomal, 7062.5);//標識“正常”  
  83.         XYTextAnnotation text = new XYTextAnnotation(fore, 7082.5);//“高血壓前期”  
  84.         XYTextAnnotation text2 = new XYTextAnnotation(one, 7091.5);//“高血壓一期”  
  85.         XYTextAnnotation text3 = new XYTextAnnotation(two, 70101.5);//“高血壓二期”  
  86.  
  87.           
  88.         //將上面的邊界線條,說明文字加入到xyplot中。  
  89.         xyplot.addAnnotation(box);  
  90.         xyplot.addAnnotation(box1);  
  91.         xyplot.addAnnotation(box2);  
  92.         xyplot.addAnnotation(box3);  
  93.  
  94.         xyplot.addAnnotation(text);  
  95.         xyplot.addAnnotation(text1);  
  96.         xyplot.addAnnotation(text2);  
  97.         xyplot.addAnnotation(text3);  
  98.         // }  
  99.         return jfreechart;  
  100.     } 

***一步,返回圖片URL

  1. public static void drawScatterChart(IrisIoInterface io, Log log,  
  2.             XYDataset xydataSet, String title, String shou, String shu,  
  3.             String nodata, String boolds, String nomal, String fore,  
  4.             String one, String two, List<PressureBean> list) {  
  5.  
  6.         JFreeChart chart = createChart(xydataSet, title, shou, shu, nodata,  
  7.                 boolds, nomal, fore, one, two, list, log);  
  8.  
  9.         HttpServletRequest request = io.getRequest();  
  10.         String filename = "";  
  11.         String graphURL = "";  
  12.         try {  
  13.             filename = ServletUtilities.saveChartAsPNG(chart, 400300null,  
  14.                     io.getSession());  
  15.             graphURL = request.getContextPath() + "/displayChart?filename=" 
  16.                     + filename;  
  17.         } catch (IOException e) {  
  18.             // TODO Auto-generated catch block  
  19.             e.printStackTrace();  
  20.             log.error(e);  
  21.         }  
  22.  
  23.         io.setData("filename", filename, BeanShare.BEAN_SHARE_REQUEST);  
  24.         io.setData("scatterurl", graphURL, BeanShare.BEAN_SHARE_REQUEST);  
  25.  
  26.     } 

效果圖:

原文鏈接:http://juliana-only.iteye.com/blog/544104

【編輯推薦】

  1. JFreeChart***實踐:折線圖
  2. JFreeChart***實踐:柱狀圖
  3. JFreeChart***實踐:3D餅圖
  4. JFreeChart***實踐:時序圖
  5. JFreeChart***實踐:甘特圖
責任編輯:林師授 來源: 遠去的渡口博客
相關推薦

2011-12-21 13:52:27

JavaJFreeChart

2011-12-21 13:44:33

JavaJFreeChart

2011-12-21 14:15:08

JavaJFreeChart

2011-12-21 13:25:33

JavaJFreeChart

2011-12-21 12:58:41

JavaJFreeChart

2011-12-21 14:34:33

JavaJFreeChart

2011-12-21 12:46:43

2011-12-20 12:53:43

JavaJFreeChart

2011-08-18 11:05:21

jQuery

2023-07-21 01:12:30

Reactfalse?變量

2012-08-09 09:10:56

代碼審查代碼

2014-06-09 15:50:08

2014-08-19 10:06:53

IAP

2024-08-21 08:02:47

2015-09-23 09:08:38

java反射

2023-09-11 08:50:03

Maven工具關系管理

2023-09-13 08:00:00

JavaScript循環語句

2010-07-06 09:07:09

2015-09-15 16:01:40

混合IT私有云IT架構

2024-09-03 16:28:20

點贊
收藏

51CTO技術棧公眾號

国产精品91在线观看| 日韩av影视在线| 日韩精品福利片午夜免费观看| a天堂视频在线| 夜久久久久久| 中文综合在线观看| 久久久久国产免费| 综合另类专区| 亚洲激情第一区| 欧美日本韩国国产| 国产免费福利视频| 久久久久国产精品一区二区 | 国产精品福利久久久| 日韩欧美国产成人精品免费| 久久丝袜视频| 欧美精品三级在线观看| 欧美 国产 综合| 黄色网页在线播放| 久久久高清一区二区三区| 亚洲最大激情中文字幕| 99re热视频| 亚洲欧洲另类| 久久天堂电影网| 亚洲av熟女国产一区二区性色| 91欧美极品| 制服丝袜亚洲精品中文字幕| 国产男女无遮挡| 青草在线视频在线观看| 国产精品不卡一区| 日韩精品欧美一区二区三区| 日韩一区二区三区在线观看视频| 国产一区二区在线观看视频| 国产精品99久久99久久久二8| 精品视频久久久久| 亚洲综合中文| 精品国产自在精品国产浪潮| 免费视频91蜜桃| 亚洲精品国模| 日韩国产高清视频在线| 无码人妻一区二区三区精品视频| 成人日韩视频| 69av一区二区三区| 国产性生交xxxxx免费| 在线女人免费视频| 亚洲成av人在线观看| 亚洲小视频在线播放| 天堂中文8资源在线8| 国产午夜三级一区二区三| 精品视频第一区| 欧美视频在线观看一区二区三区| 国产成人av电影在线| 97se视频在线观看| av中文字幕免费在线观看| 久久99最新地址| 国产精品自产拍在线观看中文| 日韩精品一区二区亚洲av观看| 国产日韩欧美在线播放不卡| 午夜精品久久17c| 国产精品suv一区二区| 今天的高清视频免费播放成人| 欧美国产日本在线| 精品无码av在线| 国产欧美日韩亚洲一区二区三区| 国内精品久久久久久中文字幕| www.av视频在线观看| 亚洲国内自拍| 人人爽久久涩噜噜噜网站| 黄色片中文字幕| 丝袜亚洲精品中文字幕一区| 国产精品入口免费视频一| 久久久久精彩视频| 美国十次了思思久久精品导航| 国产一区二区丝袜| av网站免费播放| a亚洲天堂av| 欧美精品亚洲精品| av一区在线观看| 一区二区在线观看免费视频播放| 国产乱淫av片杨贵妃| 色戒汤唯在线观看| 欧美丝袜第三区| 99热这里只有精品2| 欧美三级电影在线| 一区二区亚洲精品国产| 日本 欧美 国产| 欧美另类亚洲| 日本久久精品视频| 一级做a爱片性色毛片| 国产一区二区美女诱惑| 韩日午夜在线资源一区二区| 国产h在线观看| 亚洲精品日韩一| 欧美日韩激情在线| 免费国产黄色网址| 日韩一区二区三区在线免费观看| 欧美高清激情brazzers| 亚洲精品第二页| 欧美中文一区二区| 欧美激情va永久在线播放| 亚洲午夜18毛片在线看| 激情综合色综合久久| 九色91视频| 日本三级视频在线观看| 天涯成人国产亚洲精品一区av| 爱情岛论坛亚洲首页入口章节| 日本少妇精品亚洲第一区| 国产视频在线观看一区二区| 在线免费看av网站| 国产欧美在线| 99porn视频在线| 91啦中文在线| 狠狠躁天天躁日日躁欧美| 免费黄频在线观看| 国产一区二区区别| 欧美精品第一页在线播放| 天天射天天干天天| 成人性色生活片| 中文字幕欧美人与畜| gay欧美网站| 精品国产免费人成电影在线观看四季| 午夜影院黄色片| 国产九九精品| 高清视频一区二区三区| 91精彩视频在线播放| 岛国av一区二区三区| 97中文字幕在线观看| 亚洲女同另类| 国产精品情侣自拍| 欧洲毛片在线| 欧美日韩另类在线| 在线播放av网址| 中文字幕一区二区精品区| 国产精品日韩专区| 北岛玲一区二区三区| 欧美性jizz18性欧美| 麻豆免费在线观看视频| 91精品精品| 成人免费看黄网站| 日本视频在线免费观看| 在线免费观看一区| www.中文字幕av| 国产精品资源| 久久亚洲免费| www.成人影院| 亚洲色图50p| 9i精品福利一区二区三区| 99精品在线观看视频| 久久国产精品视频在线观看| jazzjazz国产精品久久| 久久久精品亚洲| 国产av无码专区亚洲av| 亚洲精品中文在线影院| 中文字幕一区二区在线观看视频| 97视频精品| 成人在线中文字幕| www在线免费观看视频| 91精品国产一区二区三区| a一级免费视频| 国产精品资源在线| 成人在线观看毛片| 国产精品中文字幕制服诱惑| 欧美高清视频在线| 日韩在线视频免费| 日韩欧美极品在线观看| 国产美女永久免费无遮挡| 日韩国产在线观看| 一区二区不卡在线观看| 国产一区二区高清在线| 欧美激情小视频| 无码精品视频一区二区三区| 一本色道久久综合亚洲91| 日韩中文字幕有码| 久久成人av少妇免费| 一区二区三区四区免费观看| 成人三级av在线| 国产91精品青草社区| 国产青青草在线| 7777精品久久久大香线蕉| 国产亚洲第一页| 久久人人爽爽爽人久久久| 免费涩涩18网站入口| 亚洲精品国产首次亮相| 精品日本一区二区三区在线观看| 国精产品一区二区三区有限公司| 日韩有码视频在线| 高h震动喷水双性1v1| 色8久久精品久久久久久蜜| 永久免费未视频| 成人18视频日本| 99sesese| 99视频在线精品国自产拍免费观看| 欧美人与物videos另类| 精品一区91| 浅井舞香一区二区| aaa大片在线观看| 亚洲精品国产精品自产a区红杏吧| 国产午夜无码视频在线观看| 一区二区三区在线视频观看58| 一本色道综合久久欧美日韩精品 | 天堂av资源在线| 欧美性猛交xxxx乱大交退制版 | 欧美激情五月| 日本不卡一区| 91久久偷偷做嫩草影院电| 国产成人啪精品视频免费网| 视频在线观看入口黄最新永久免费国产 | 91豆花精品一区| 巨大荫蒂视频欧美大片| 亚洲男人的天堂网站| 国产v片在线观看| 欧美主播一区二区三区| 日韩黄色在线视频| 亚洲天堂免费看| 日韩福利在线视频| 91日韩在线专区| 国产精品99久久久精品无码| 蜜臀精品久久久久久蜜臀| 波多野结衣乳巨码无在线| 久久久久久美女精品| 欧美色图亚洲自拍| 国产精品久久久网站| 亚洲999一在线观看www| 欧美日韩尤物久久| 欧美在线视频网站| 国内老司机av在线| 欧美精品午夜视频| 日本高清在线观看wwwww色| 亚洲天堂av在线免费观看| 蜜臀av在线观看| 日韩一区二区免费在线电影| 伊人免费在线观看| 欧美性猛交xxxx乱大交极品| 日韩成年人视频| 亚洲一区av在线| 福利所第一导航| 亚洲激情校园春色| 欧美国产日韩综合| 亚洲三级在线看| 亚洲伦理一区二区三区| 国产精品美女一区二区| 阿v天堂2014| 中文乱码免费一区二区| 影音先锋制服丝袜| 久久精品一区二区三区四区| 99久久人妻精品免费二区| 成人午夜激情片| 久久久男人的天堂| 成人国产免费视频| 午夜视频在线观看国产| kk眼镜猥琐国模调教系列一区二区| 四虎成人免费视频| 成人一区二区三区中文字幕| 亚洲欧洲国产视频| av在线不卡免费看| 黄色片视频免费观看| 91在线porny国产在线看| 2一3sex性hd| www久久久久| 丁香激情五月少妇| 亚洲婷婷综合久久一本伊一区| 91杏吧porn蝌蚪| 亚洲国产一区二区三区 | 在线观看亚洲精品| 一本色道久久综合精品婷婷| 欧美日韩一区二区在线视频| 国产精品免费无遮挡| 欧美一级理论片| 天堂av一区二区三区| 亚洲视频在线观看免费| 日本在线www| 久久久日本电影| 欧美粗大gay| 91久久久亚洲精品| 美女呻吟一区| 清纯唯美一区二区三区| 99成人在线视频| 精品丰满人妻无套内射| 久久裸体视频| 日韩精品aaa| 成人av中文字幕| 丰满少妇高潮一区二区| 国产精品久久久久7777按摩| 欧美被狂躁喷白浆精品| 欧美日韩国产一区在线| 中文字幕资源网| 精品99一区二区| 999国产在线视频| 欧美激情视频播放| 日本黄色一区| 国产精品免费看一区二区三区| 中文精品一区二区| av电影一区二区三区| 亚洲免费影视| 中文字幕无码毛片免费看| 久久久亚洲精品石原莉奈| 国产午夜手机精彩视频| 色综合久久天天| 性一交一乱一乱一视频| 亚洲欧美日韩天堂| 日本三级韩国三级欧美三级| 国产精品极品尤物在线观看| 911亚洲精品| 男女h黄动漫啪啪无遮挡软件| 亚洲少妇一区| 波多野结衣电影免费观看| 国产日韩精品一区二区浪潮av| 黄色小说在线观看视频| 欧美男男青年gay1069videost| 亚洲av片一区二区三区| 久久影视电视剧免费网站清宫辞电视 | www国产在线| 一本一道久久a久久精品逆3p| av资源网在线播放| 91香蕉亚洲精品| 欧美精选视频在线观看| 欧美 日韩 亚洲 一区| 国产在线日韩欧美| 亚洲精品天堂网| 日韩欧美在线免费| 日韩一级片免费看| 欧美丰满少妇xxxxx| 91国产一区| 伊甸园精品99久久久久久| 久久精选视频| 欧美黑人欧美精品刺激| 亚洲电影一区二区三区| 国产熟女一区二区三区四区| 最近2019中文免费高清视频观看www99| 午夜不卡影院| 精品国产一区二区三| 亚洲视频综合| 任你躁av一区二区三区| 一区二区在线电影| 精品乱子伦一区二区| 久久久精品视频成人| 日本黄色成人| 一区二区在线观| 美女视频黄a大片欧美| 人妻熟人中文字幕一区二区| 色婷婷狠狠综合| 国产综合在线观看| 国产精品第一页在线| 欧美精品一区二区三区精品| 国产又黄又猛又粗又爽的视频| 久久精品免费在线观看| 黄色污污视频软件| 在线视频中文亚洲| 99精品在免费线偷拍| 亚洲五月六月| 黑人巨大精品欧美黑白配亚洲| 蜜臀久久精品久久久用户群体| 日韩一区二区电影网| 青草在线视频| 久久久久久一区| 久久夜色精品| 精品一区二区三孕妇视频| 欧美性xxxxx极品少妇| 日本高清视频在线播放| 亚洲自拍偷拍福利| 欧美特黄a级高清免费大片a级| 影音先锋资源av| 精品国产成人av| 国产专区在线播放| 国产精品自产拍在线观| 91精品在线观看国产| 挪威xxxx性hd极品| 欧美小视频在线| 秋霞成人影院| 成人av免费在线看| 久久国产精品99国产| 欧美色图17p| 精品久久久久一区| 一个人看的www视频在线免费观看| 色噜噜一区二区| 国产成人av一区| 香蕉污视频在线观看| 两个人的视频www国产精品| 精品在线网站观看| caopor在线视频| 一区免费观看视频| 黄色片一区二区三区| 国产精品成人v| 国模一区二区三区| 日本激情小视频| 欧美一级日韩一级| 亚洲精品福利电影| 免费观看黄色大片| 91在线观看下载| 国产日韩精品suv| 欧亚精品在线观看| 欧美.www| 中文字幕人妻一区二区三区在线视频| 91精品福利在线一区二区三区| av男人的天堂在线观看| 一本一道久久a久久综合精品 | 乱人伦精品视频在线观看| 久久国产波多野结衣| 日韩精品久久久久久久玫瑰园| 亚洲精品66| 美女福利视频在线|