您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關R語言可視化中如何用ggplot構造期待已久的雷達圖,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
之前一直苦惱于ggplot函數無法制作雷達圖,心想著既然餅圖可以通過柱形圖+極坐標模擬出來,為啥雷達圖不行。
我嘗試著用折線圖+極坐標來模擬雷達圖(之前在制作餅圖和圓環圖以及玫瑰圖的時候就是這樣做的)。
結果就粗線了以下不倫不類的圖形:
data<-data.frame(Name = c("蘋果","谷歌","臉書","亞馬遜","騰訊"),Company = c("Apple","Google","Facebook","Amozon","Tencent"),Sale2013 = c(5000,3500,2300,2100,3100),Sale2014 = c(5050,3800,2900,2500,3300),Sale2015 = c(5050,4000,3200,2800,3700),Sale2016 = c(6000,4800,4500,3500,4300))
mydata<-melt(data,id.vars=c("Name","Company"),variable.name="Year",value.name="Sale")
ggplot(mydata,aes(Company,Sale,group=Year,color=Year))+geom_line()+coord_polar(theta = "x")
雖說效果已經很接近了,但是整體上還是無法達到雷達圖的要求,首尾線條沒有相連,點之間是通過弧線鏈接而非直線。
后來又是在瀏覽r語言論壇時,無意間看到一個圍繞ggplot2包開發的插件——ggradar,果不其然,是專門用于輔助ggplot2制作雷達圖而生的。
接下來我跟大家分享該插件的使用方法:
因為是開發版的,托管在github網站上,所以不能通過普通途徑下載,需要使用devtools工具:
install_github("ricardo-bion/ggradar")
library("ggplot2")
library("ggradar")
下面開始構造數據集:
mydata<-matrix(runif(40,0,1),5,8)
#以上構造了一個值區間為0~1,個數為40的5行8列隨機數矩陣。
rownames(mydata) <- LETTERS[1:5]
#以上使用前五個大寫字母為矩陣行命名;
colnames(mydata) <- c("Apple","Google","Facebook","Amozon","Tencent","Alibaba","Baidu","Twitter")
#使用以上文本向量為矩陣列命名;
mynewdata<-data.frame(mydata)
#將矩陣數據表格轉化為數據框格式作圖數據:
為數據框增加一列文本字段:
Name<-c("USA","CHN","UK","RUS","JP")
mynewdata<-data.frame(Name,mynewdata)
ggradar(mynewdata[1,])
以上的圖表是默認樣式,ggradar函數對數據格式以及變量值范圍高度敏感,而卻不過多的依賴函數內的參數。
ggradar(mynewdata)
可以看出,ggradar函數支持多序列雷達圖,只是對它規定的數據結構很不能理解,為啥不是列代表分類,行代表軸變量呢,跟ggplot的語法還是有一些偏離,不過只要數據構造好之后,作圖函數的語法是相當簡練的。
上述就是小編為大家分享的R語言可視化中如何用ggplot構造期待已久的雷達圖了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。