翻譯|使用教程|編輯:楊鵬連|2020-07-01 15:14:04.420|閱讀 378 次
概述:一起探索如何將箱形圖與抖動(dòng)如何相結(jié)合,比較連續(xù)變量并可視化其大小。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Highcharts是一款純JavaScript編寫的圖表庫(kù),為你的Web網(wǎng)站、Web應(yīng)用程序提供直觀、交互式圖表。當(dāng)前支持折線、曲線、區(qū)域、區(qū)域曲線圖、柱形圖、條形圖、餅圖、散點(diǎn)圖、角度測(cè)量圖、區(qū)域排列圖、區(qū)域曲線排列圖、柱形排列圖、極坐標(biāo)圖等幾十種圖表類型。
箱形圖是一種非常好的圖表,可幫助快速可視化我們的數(shù)據(jù)點(diǎn)分布的形狀并檢測(cè)異常值。然而,箱形圖的解釋很容易混淆并誤導(dǎo)受眾。克服這一缺點(diǎn)的一種方法是將箱形圖與抖動(dòng)相結(jié)合。
在本教程中,我們將向您展示如何通過(guò)組合箱形圖和抖動(dòng)來(lái)創(chuàng)建有效的R可視化效果。
備注基本上,箱形圖僅在五個(gè)主要值中顯示大量點(diǎn)的統(tǒng)計(jì)數(shù)據(jù):最大值,第三四分位數(shù),中位數(shù),第一四分位數(shù)和最小值。如果數(shù)據(jù)集有異常值,則箱形圖也會(huì)顯示它們。
下面的演示顯示了2012年奧運(yùn)會(huì)運(yùn)動(dòng)員四個(gè)不同學(xué)科的高度:獨(dú)木舟,體操,曲棍球和現(xiàn)代五項(xiàng):
這是R中的代碼:
install.packages("devtools") library(devtools) devtools::install_github("jbkunst/highcharter") library("highcharter") library("dplyr") library(readr) packageVersion("highcharter") #Load the data df <- read_csv( "http://raw.githubusercontent.com/mekhatria/demo_highcharts/master/Olympics2012CapitalLetter.csv" ) #Remove the unnecessary data such as nationality, date of birth, name, and age df = subset(df, select = -c(nationality, date_of_birth, name, age)) # Compare the data set using the descipine name and sex my_data <- df %>% filter((sport == "Gymnastics" & sex == "male") | (sport == "Canoe" & sex == "male") | (sport == "Hockey" & sex == "male") | (sport == "Modern Pentathlon" & sex == "male") ) #Remove the redundant data my_data = subset(my_data, select = -c(sex)) #Create the chart hcboxplot( outliers = FALSE, x = my_data$height, var = my_data$sport, name = "Length" ) %>% hc_title(text = "Male height by descipline (Olympic 2012)") %>% hc_yAxis(title = list(text = "Height in metre")) %>% hc_chart(type = "column")
我們可以觀察到以下內(nèi)容:
到目前為止,箱形圖使我們能夠以非常整潔和快速的可視化方式獲得一些統(tǒng)計(jì)信息和數(shù)據(jù)比較。但是,箱形圖未顯示圖表上的數(shù)據(jù)點(diǎn)。如果沒有數(shù)據(jù)點(diǎn),圖表的解釋很容易誤導(dǎo)受眾,使其將盒圖的長(zhǎng)度與數(shù)據(jù)點(diǎn)的大小聯(lián)系起來(lái),或者兩個(gè)相似的盒圖大小會(huì)有相同的數(shù)據(jù)點(diǎn)數(shù)量等。換句話說(shuō),我們無(wú)法回答以下問(wèn)題:
彌補(bǔ)箱形圖缺點(diǎn)的一種方法是增加抖動(dòng)。添加到繪圖框中的抖動(dòng)會(huì)顯示數(shù)據(jù)點(diǎn)的密度和大小。
這是R中的代碼:
#Load the data df <- read_csv( "http://raw.githubusercontent.com/mekhatria/demo_highcharts/master/Olympics2012CapitalLetter.csv" ) #Remove the unnecessary data such as nationality, date of birth, name, and age df = subset(df, select = -c(nationality, date_of_birth, name, age)) # Comparing two data set using the sport name and sex my_data <- df %>% filter((sport == "Gymnastics" & sex == "male") | (sport == "Canoe" & sex == "male") | (sport == "Hockey" & sex == "male") | (sport == "Modern Pentathlon" & sex == "male") ) #Remove the redundant data my_data = subset(my_data, select = -c(sex)) #Create the chart hcboxplot( x = my_data$height, var = my_data$sport, name = "Length", color = "#2980b9", outliers = TRUE ) %>% hc_chart(type = "column") %>% hc_title(text = "Male height by descipline (Olympic 2012)") %>% hc_yAxis(title = list(text = "Height in metre")) %>% hc_add_series( data = my_data, type = "scatter", hcaes(x = "sport", y = "my_data$height", group = "sport") ) %>% hc_plotOptions(scatter = list( color = "red", marker = list( radius = 2, symbol = "circle", lineWidth = 1 ) )) %>% hc_plotOptions(scatter = list(jitter = list(x = .1, y = 0)))
毫無(wú)疑問(wèn),在可視化的項(xiàng)目中,獨(dú)木舟和曲棍球項(xiàng)目擁有最大數(shù)量的樣本,而現(xiàn)代五項(xiàng)擁有最小數(shù)量的樣本。盡管如此,體操和曲棍球項(xiàng)目的方框圖形狀幾乎相同。它們的數(shù)據(jù)點(diǎn)大小不同。添加抖動(dòng)的另一個(gè)好優(yōu)點(diǎn)是可以直觀地顯示每個(gè)規(guī)則的最大值,最小值和離群值的數(shù)量。
好吧,看來(lái)增加抖動(dòng)有助于我們更好地理解數(shù)據(jù)集。但是,值得一提的是,抖動(dòng)圖本身也有其缺點(diǎn),但是與箱線圖的組合可從每個(gè)圖中獲得最佳效果,因?yàn)樗鼈?可以相互彌補(bǔ)缺陷。抖動(dòng)圖將在另一篇文章中探討:)。
現(xiàn)在,您知道如何通過(guò)混合箱形圖和抖動(dòng)來(lái)創(chuàng)建引人注目的交互式圖表。讓我們知道您使用這些圖表的經(jīng)驗(yàn),并隨時(shí)在下面的部分中分享任何評(píng)論或問(wèn)題。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: