用ggplot2構造期待已久的雷達圖
之前一直苦惱於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(mynewdata)
EasyCharts團隊出品
帥的人都關注了EasyCharts團隊^..^~
QQ交流群:454614789
微信公眾號:EasyCharts
更多信息敬請查看: http://easychart.github.io/post/Easycharts/
推薦閱讀:
※【R語言基礎】01.R語言軟體環境搭建及常用操作
※Learn R | 機器學習中的人工神經網路(二)
※knn到底咋回事?(修改版)
※北京歷史天氣可視化