ggplot2玫瑰图案例——星巴克门店漫衍图
当前位置:以往代写 > 其他教程 >ggplot2玫瑰图案例——星巴克门店漫衍图
2019-06-14

ggplot2玫瑰图案例——星巴克门店漫衍图

ggplot2玫瑰图案例——星巴克门店漫衍图

利用ggplot2建造放射状玫瑰图本不是什么难事,仅需将普通单序列柱形图添加添加一个极坐标转化参数即可。
可是碰着较量小清新的案例,照旧值到手动操纵一下的。
本文图片案例来历于DT财经关于星巴克门店漫衍TOP20都市漫衍数据图,用色和泛起形式较量友好,所以就信手拿来作为案例分享给各人。

ggplot2玫瑰图案例——星巴克门店分布图

原图中并未给出任何实际数据(所以需要用眼睛估测了~—~)library(“rvest”)library(“dplyr”)library(“ggplot2”)library(“grid”)library(“showtext”)library(“Cairo”)font.add(“myfont”,”msyh.ttc”)
找一份网上的统计数据url<-“http://bbs.thmz.com/thread-2715502-1-1.html”table<-read_html(url,encoding=”gbk”)%>%html_nodes(“td.t_f>table”)%>%html_table(header =TRUE,trim =TRUE,fill=TRUE)%>%as.data.frame()
都市数据mydata<-data.frame(label=c(“上海”,”北京”,”杭州”,”广州”,”深圳”,”苏州”,”成都”,”天津”,”南京”,”武汉”,”宁波”,”重庆”,”西安”,”无锡”,”厦门”,”青岛”,”长沙”,”南通”,”常州”,”福州”))
整理数据mydata<-merge(mydata,table[,c(“都市”,”门店数量”)],by.x=”label”,by.y=”都市”,all.x=TRUE)mydata[mydata$label==”常州”,”门店数量”]=27names(mydata)[2]<-“value”mydata<-arrange(mydata,-value)%>%transform(id=1:20,class=c(1,6,rep(1:6,3)))mydata$label<-as.character(mydata$label)
#标签拆成单字换行,竖排机关:label<-strsplit(mydata$label,””)for (i in 1:length(label)){mydata$label_ff[[i]]<-paste0(label[[i]],collapse=”\n”)}mydata[1:2,”label_ff”]<-c(“上海”,”北京”)mydata[16:20,”label_ff”]<-c(“青岛”,”厦门”,”常州”,”福州”,”南通”)#计较标签的旋转角度:
mydata$angle=c(rev(9*(1:10-1)+4.5),-(9*(1:10-1)+4.5))mydata$angle[16:20]<-rev(9*(1:5-1)+4.5)
图形可视化进程:p<-ggplot(mydata)+geom_col(aes(x=id,y=value,fill=factor(class)))+geom_hline(yintercept =c(25,50,100,200,500),linetype=2,size=.25)+geom_text(aes(x=id,y=value+12,label=label_ff,angle=angle),family=”myfont”,size=3.5,lineheight=1)+#坐标轴放大一倍占位:scale_x_continuous(limits=c(0,40),expand=c(0,0))+#Y延伸到负值突出圆心的空缺scale_y_continuous(limits=c(-100,600))+scale_fill_manual(values=c(“#00643E”,”#207A57″,”#3D8C6D”,”#59A284″,”#76B69B”,”#95CBB3″),guide=FALSE)+coord_polar(start=-14.245)+theme_void();p

ggplot2玫瑰图案例——星巴克门店分布图

图形输出:setwd(“E:/数据可视化/R/R语言进修条记/数据可视化/ggplot2/优秀R语言案例”)CairoPNG(file=”polar_rose.png”,width=2400,height=1800)showtext.begin()grid.newpage()pushViewport(viewport(layout=grid.layout(6,8)))vplayout<-function(x,y){viewport(layout.pos.row =x,layout.pos.col=y)}print(p,vp=vplayout(1:6,1:8))showtext.end()dev.off()

ggplot2玫瑰图案例——星巴克门店分布图

局部线条颠末手工修饰!
接待插手本站果真乐趣群贸易智能与数据阐明群乐趣范畴包罗各类让数据发生代价的步伐,实际应用案例分享与接头,阐明东西,ETL东西,数据客栈,数据挖掘东西,报表系统等全方位常识QQ群:81035754

    关键字:

在线提交作业