【程式設計師眼中的統計學(1)】資訊圖形化:第一印象
package pictuer; import java.awt.Dimension; import java.awt.Font; import java.io.PrintStream; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import javax.swing.JPanel; import org.jfree.chart.*; import org.jfree.chart.axis.DateAxis; import org.jfree.chart.axis.DateTickMarkPosition; import org.jfree.chart.labels.StandardXYToolTipGenerator; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYBarRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.time.*; import org.jfree.data.xy.IntervalXYDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class XYBarChartDemo1 extends ApplicationFrame { /** * 建構函式,用來建立面板用來存放圖片 * @param s 表示面板的名稱 */ public XYBarChartDemo1(String s) { super(s); JPanel jpanel = createDemoPanel();//jpanel 建立面板的名稱 jpanel.setPreferredSize(new Dimension(500, 270)); setContentPane(jpanel); } /** * 建立條形圖 * @param intervalxydataset 數週資料生成變數,用來存放數軸資料 * @return 返回條形圖 */ private static JFreeChart createChart(IntervalXYDataset intervalxydataset,String Pictuer_name) { //System.out.println("請輸入該圖片的名稱(型別是String):"); //Scanner input = new Scanner(System.in);//input 輸入流變數,存放從鍵盤輸入的字串 //String Pictuer_name=input.nextLine();//Pictuer_name 字串變數,用來存放條形圖的名稱 JFreeChart jfreechart = ChartFactory.createXYBarChart(Pictuer_name, "Year", true, "Number of People", intervalxydataset, PlotOrientation.VERTICAL, true, false, false); //jfreechart 圖形變數,用來裝載圖形 XYPlot xyplot = (XYPlot)jfreechart.getPlot();//xyplot 數軸變數,用來存放和設定數軸的資訊 XYBarRenderer xybarrenderer = (XYBarRenderer)xyplot.getRenderer();//xybarrenderer 圖形方塊變數 StandardXYToolTipGenerator standardxytooltipgenerator = new StandardXYToolTipGenerator("{1} = {2}", new SimpleDateFormat("yyyy"), new DecimalFormat("0")); //standardxytooltipgenerator 數週資料生成變數,用來存放數軸資料 xybarrenderer.setBaseToolTipGenerator(standardxytooltipgenerator); xybarrenderer.setMargin(0.10000000000000001D); DateAxis dateaxis = (DateAxis)xyplot.getDomainAxis();//dateaxis 數值變數,用來設定數軸的數值的 dateaxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE); dateaxis.setLowerMargin(0.01D); dateaxis.setUpperMargin(0.01D); ChartUtilities.applyCurrentTheme(jfreechart); return jfreechart; } /** * 獲得繪製條形圖所需的資料 * @return 繪製條形圖所需的資料集 */ private static IntervalXYDataset createDataset() { List<Integer> list_name=new ArrayList<Integer>();//list_name 裝載直方圖各小塊區間的容器 list_name.add(1); list_name.add(2); list_name.add(3); list_name.add(4); list_name.add(5); int n=5; TimeSeries timeseries = new TimeSeries("Executions", "Year", "Count");//timeseries 時間變數,存放資料時間的 List<Integer> li_name=list_name;//li_name 存放條形圖各小塊區間的容器 List<Double> list_size=new ArrayList<Double>();//list_size 裝載條形圖各小塊頻數的容器 list_size.add(23.0); list_size.add(13.0); list_size.add(25.0); list_size.add(12.0); list_size.add(18.0); List<Double> li_size=list_size;//li_size 存放條形圖各區間頻數的容器 for(int i=0;i<n;i++){ try { timeseries.add(new Year(li_name.get(i)), new Double(li_size.get(i))); } catch (Exception exception) { System.err.println(exception.getMessage()); }//拋異常 } TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(timeseries);//timeseriescollection 時間數集變數 return timeseriescollection; } /** * 得到條形圖各小塊的個數 * @return 直方圖各小塊的個數 */ /** * 設定條形圖各小塊的個數 * @return 直方圖各小塊的個數 */ /** * 建立條形圖面板 * @param ChartPanel 圖形面板變數 * @return 返回直方圖面板 */ public static JPanel createDemoPanel() { String Pictuer_name; Pictuer_name="Chart"; return new ChartPanel(createChart(createDataset(),Pictuer_name)); } public static void main(String args[]) { /** * 繪製條形圖 * @author cuit * @return 返回直方圖 */ String panel_name; panel_name="My Chart"; XYBarChartDemo1 xybarchartdemo1 = new XYBarChartDemo1(panel_name);//xybarchartdemo1 構造方法例項變數 xybarchartdemo1.pack(); RefineryUtilities.centerFrameOnScreen(xybarchartdemo1); xybarchartdemo1.setVisible(true); } }
相關推薦
【程式設計師眼中的統計學(1)】資訊圖形化:第一印象
package pictuer; import java.awt.Dimension; import java.awt.Font; import java.io.PrintStream; import java.text.DecimalFormat; import java.text.Simpl
【程式設計師眼中的統計學(12)】相關與迴歸:我的線條如何?
作者 白寧超 2015年10月25日22:16:07 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越來
【程式設計師眼中的統計學(2)】集中趨勢度量:分散性、變異性、強大的距
// 用於統計輸入了多少資料 static int n = 0; static String a1[]; static int b1[]; /** * @Title: set * @Description: 資料賦值 *
程式設計師學習資料(1)—附下載地址,持續更新
ant學習資料 ant.pdf 連結:http://pan.baidu.com/s/1nuFZs5z 密碼:1efcDHTML網頁製作完全手冊.chm 連結:http://pan.baidu.com/s/1slhB36t 密碼:67zkdom4j資料大全 dom4j.zip 連結:http://pan.b
程式設計師生存定律-六個程式設計師的故事(1)
程式設計師生存定律這系列的目錄在這裡:程式設計師生存定律--目錄喜歡從頭瞄的,可以移步。-------------------------------------------------------------------------------此前的章節基本上是在分析並試圖
程式設計師刷題(1)反轉三位數(python)
程式設計師常用刷題(1)反轉一個三位數 class Solution: “”" @param number: A 3-digit number. @return: Reversed number. “”" def reverseInteger(self, num
程式設計師笑話系列(1)
碼程式碼太累了?快來看看程式設計師笑話開心一下吧!據說愛笑的人碼程式碼會更快哦! No.1 “咚咚咚!” “誰?” 過了很久…… “java……” No.2 一個
c# 程式設計師學習android(1)引導介面--viewpager的使用
本次之前說一下android開發工具。android開發工具有2種,一種是eclipse 一個是谷歌android-studio-bundle 前者需要配置,後者不需要。會自動下載sdk。配置方法我就不說了。有幾個注意的地方說一下。eclipse 適合32位windows系
【深入Java虛擬機(1)】:Java內存區域與內存溢出
count 遇到 leak 分析 對象類型 深度 分配內存 解釋執行 尋址 內存區域 Java虛擬機在執行Java程序的過程中會把他所管理的內存劃分為若幹個不同的數據區域。Java虛擬機規範將JVM所管理的內存分為以下幾個運行時數據區:程序計數器、Java虛擬機棧、本地方法
【phaser.js學習筆記(1)】使用phaser.js製作遊戲
phaser.js是一款開源的HTML5遊戲框架,GitHub主頁上star超過了2萬。phaser.js支援使用JavaScript或TypeScript編寫遊戲,支援WebGL和Canvas渲染並可藉助第三方工具編譯成iOS,Android原生程式。phaser.js有兩
【深入Java虛擬機器(1)】:Java記憶體區域與記憶體溢位
記憶體區域 Java虛擬機器在執行Java程式的過程中會把他所管理的記憶體劃分為若干個不同的資料區域。Java虛擬機器規範將JVM所管理的記憶體分為以下幾個執行時資料區:程式計數器、Java虛擬機器棧、本地方法棧、Java堆、方法區。下面詳細闡述各資料區所儲存的
【CUDA並行程式設計系列(1)】GPU技術簡介
前言 CUDA並行程式設計系列是本人在學習CUDA時整理的資料,內容大都來源於對《CUDA並行程式設計:GPU程式設計指南》、《GPU高效能程式設計CUDA實戰》和CUDA Toolkit Documentation的整理。通過本系列整體介紹CUDA並行程式設
【Unity3D5.6版本使用(1)】自定義編輯器獲取場景所有物件Tag生成Json
在unity3D5.x版本中,一部分以前的程式碼無法正常執行,比如:載入場景時,使用Application.loadedLevel會提示“已過時”,需要使用EditorSceneManager.OpenScene(FileName[scount]);所以寫一篇記
【程式設計師眼中的統計學(6.1)】原創實現幾何分佈演算法以及應用
作者 白寧超 2015年8月14日16:07:23 摘要:本文繼統計學幾何分佈、二項分佈、泊松分佈研究的深入,基於各種分佈基礎概念和核心知識介紹之後。就各種分佈的實現和真實環境下應用方是目的。本文就演算法文件規範和程式碼註釋進行梳理,利用其基本核心演算法,實現我們要達到的目的。大家通用的一些統計
【程式設計師眼中的統計學(7)】正態分佈的運用:正態之美
作者 白寧超 2015年10月15日18:30:07 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越來
【程式設計師眼中的統計學(8)】統計抽樣的運用:抽取樣本
作者 白寧超 2015年10月15日18:30:07 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越來
【程式設計師眼中的統計學(6)】幾何分佈、二項分佈及泊松分佈:堅持離散
/** * 在n次伯努利試驗中,試驗r次才得到第一次成功的機率 P(X=r)=pq^{r-1} * @param p double型保留一位小數,表示成功的概率 * @param q double型保留一位小數,表示失敗的概率即1-p * @param r 整型,實驗次數 *
【程式設計師眼中的統計學(6.2)】原創實現二項分佈演算法以及應用
package DistTools; /** * * @(#)GeoDist.java * @Description:描述:本演算法中在n次伯努利試驗中:試驗n次得到r次成功的概率、二項分佈的期望、二項分佈方差的具體實現。 * @Definitions:定義:在相互獨立事件中
【程式設計師眼中的統計學(5)】排列組合:排序、排位、排
/** * 獲取無重線排列總數目 * 描述:從n個元數中選取m個元數進行全排列,得出一共有多少種排法 * 公式:A(m,n)=m!/(n-m)! * 優缺點:輸入資料必須互不相同。求階乘時,使用了for迴圈,避免了遞迴方法導致記憶體溢位的風險。
【程式設計師眼中的統計學(11)】卡方分佈的應用
作者 白寧超 2015年8月9日22:33:00 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越