r语言echarts画箱线图_echarts学习笔记之箱线图的分析与绘制详解
一、箱線圖 box-plot
箱線圖(boxplot)也稱箱須圖(box-whisker plot),它是用一組數(shù)據(jù)中的最小值、第一四分位數(shù)、中位數(shù)、第三四分位數(shù)和最大值來反映數(shù)據(jù)分布的中心位置和散布范圍,可以粗略地看出數(shù)據(jù)是否具有對稱性。通過將多組數(shù)據(jù)的箱線圖畫在同一坐標上,則可以清晰地顯示各組數(shù)據(jù)的分布差異,為發(fā)現(xiàn)問題、改進流程提供線索。
什么是四分位數(shù)
箱線圖需要用到統(tǒng)計學的四分位數(shù)(quartile)的概念,所謂四分位數(shù),就是把組中所有數(shù)據(jù)由小到大排列并分成四等份,處于三個分割點位置的數(shù)字就是四分位數(shù)。
第一四分位數(shù)(q1),又稱“較小四分位數(shù)”或“下四分位數(shù)”,等于該樣本中所有數(shù)值由小到大排列后第25%的數(shù)字。
第二四分位數(shù)(q2),又稱“中位數(shù)”,等于該樣本中所有數(shù)值由小到大排列后第50%的數(shù)字。
第三四分位數(shù)(q3),又稱“較大四分位數(shù)”或“上四分位數(shù)”,等于該樣本中所有數(shù)值由小到大排列后第75%的數(shù)字。
第三四分位數(shù)與第一四分位數(shù)的差距又稱四分位間距(interquartile range,iqr)。
計算四分位數(shù)首先要確定q1、q2、q3的位置(n表示數(shù)字的總個數(shù)):
q1的位置=(n+1)/4
q2的位置=(n+1)/2
q3的位置=3(n+1)/4
對于數(shù)字個數(shù)為奇數(shù)的,其四分位數(shù)比較容易確定。例如,數(shù)字“5、47、48、15、42、41、7、39、45、40、35”共有11項,由小到大排列的結果為“5、7、15、35、39、40、41、42、45、47、48”,計算結果如下:
q1的位置=(11+1)/4=3,該位置的數(shù)字是15。
q2的位置=(11+1)/2=6,該位置的數(shù)字是40。
q3的位置=3(11+1)/4=9,該位置的數(shù)字是45。
而對于數(shù)字個數(shù)為偶數(shù)的,其四分位數(shù)確定起來稍微繁瑣一點。例如,數(shù)字“8、17、38、39、42、44”共有6項,位置計算結果如下:
q1的位置=(6+1)/4=1.75
q2的位置=(6+1)/2=3.5
q3的位置=3(6+1)/4=5.25
這時的數(shù)字以數(shù)據(jù)連續(xù)為前提,由所確定位置的前后兩個數(shù)字共同確定。例如,q2的位置為3.5,則由第3個數(shù)字38和第4個數(shù)字39共同確定,計算方法是:38+(39-38)×3.5的小數(shù)部分,即38+1×0.5=38.5。該結果實際上是38和39的平均數(shù)。
同理,q1、q3的計算結果如下:
q1 = 8+(17-8)×0.75=14.75
q3 = 42+(44-42)×0.25=42.5
excel為計算四分位數(shù)提供了quartile(array,quart)函數(shù),其中array參數(shù)用于指定要計算四分位數(shù)值的數(shù)組或數(shù)值型單元格區(qū)域,quart指定返回哪一個四分位值,可用值如下:
0,返回最小值;
1,返回第一個四分位數(shù);
2,返回第二個四分位數(shù),即中位數(shù);
3,返回第三個四分位數(shù);
4,返回最大值。
箱線圖一般被用作顯示數(shù)據(jù)分散情況。具體是計算一組數(shù)據(jù)的中位數(shù)、25%分位數(shù)、75%分位數(shù)、上邊界、下邊界,來將數(shù)據(jù)從大到小排列,直觀展示數(shù)據(jù)整體的分布情況。
大部分正常數(shù)據(jù)在箱體中,上下邊界之外的就是異常數(shù)據(jù)了。
上下邊界的計算公式是:
upperlimit=q3+1.5iqr=75%分位數(shù)+(75%分位數(shù)-25%分位數(shù))1.5
lowerlimit=q1-1.5iqr=25%分位數(shù)-(75%分位數(shù)-25%分位數(shù))1.5
參數(shù)說明:
1.q1表示下四分位數(shù),即25%分位數(shù);q3為上四分位數(shù),即75%分位數(shù);iqr表示上下四分位差,系數(shù)1.5是一種經過大量分析和經驗積累起來的標準,一般情況下不做調整。
2.分位數(shù)的參數(shù)可根據(jù)具體預警結果調整:25%和75%,是比較靈敏的條件,在這種條件下,多達25%的數(shù)據(jù)可以變得任意遠而不會很大地擾動四分位。具體業(yè)務中可結合擬合結果自行調整為其他分位
使用echarts時,這些計算通過調用echarts.datatool.prepareboxplotdata()來完成。
說到這里,有一個預警,繪制箱線圖除了要下載echart.js之外,還需要引入datatool.js,否則瀏覽器會報錯:uncaught typeerror: cannot read property 'prepareboxplotdata' of undefined(…)。
datatool.js可以到github上下載。
二、echarts箱線圖示例
echart官網給出的有兩種。
一種是單值對應(樣本元素有一組對應的值數(shù)據(jù)):
另一種是多值對應(樣本元素有多個對應的值數(shù)據(jù)):
三、數(shù)據(jù)結構分析
1.單值對應
單值對應的數(shù)據(jù)結構比較簡單,一個樣本信息的數(shù)據(jù)存儲到對應的一個數(shù)組里,這些數(shù)組又存儲在一個大數(shù)組里。然后用echarts.datatool.prepareboxplotdata()處理這個大數(shù)組。
2.多值對應
舉一個栗子:線上地址在
兩種性別的三種基因含量表。(數(shù)據(jù)純虛構)
那要提供什么樣的數(shù)據(jù)才能使用echart生成對應的箱線圖?
再來看一下echart官網給出栗子數(shù)據(jù),是通過三個for循環(huán)隨機生成的。
data = [];
for (var seriesindex = 0; seriesindex < 5; seriesindex++) {
var seriesdata = [];
for (var i = 0; i < 18; i++) {
var cate = [];
for (var j = 0; j < 100; j++) {
cate.push(math.random() * 200);
}
seriesdata.push(cate);
}
data.push(echarts.datatool.prepareboxplotdata(seriesdata));
}
通過在控制臺console.log(data) , console.log(seriesdata) , console.log(cate) ,
可以看出外層的循環(huán)是echarts.datatool.prepareboxplotdata()執(zhí)行的次數(shù)=5,可以理解為每個樣本有5類元素。內部的循環(huán)表示有18個樣本,一類元素的樣本數(shù)據(jù)有100條。
所以要實現(xiàn)的性別基因表的數(shù)據(jù)結構應該是:
弄清楚數(shù)據(jù)結構剩下的繪圖操作就是按部就班了,完整代碼我已提交到。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對萬仟網的支持。
希望與廣大網友互動??
點此進行留言吧!
總結
以上是生活随笔為你收集整理的r语言echarts画箱线图_echarts学习笔记之箱线图的分析与绘制详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “即须行醉放狂歌”上一句是什么
- 下一篇: 求一个理解包容个性签名。