R语言可视化——用ggplot结构等候已久的雷达图
作者:杜雨,EasyCharts团队成员,R语言中文社区专栏作者,乐趣偏向为:Excel商务图表,R语言数据可视化,地理信息数据可视化。
之前一直苦恼于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的语法照旧有一些偏离,不外只要数据结构好之后,作图函数的语法是相当简洁的。
接待插手本站果真乐趣群贸易智能与数据阐明群乐趣范畴包罗各类让数据发生代价的步伐,实际应用案例分享与接头,阐明东西,ETL东西,数据客栈,数据挖掘东西,报表系统等全方位常识QQ群:81035754