溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

R語(yǔ)言數(shù)據(jù)可視化中的仿網(wǎng)易數(shù)獨(dú)圓環(huán)條形圖是怎樣的

發(fā)布時(shí)間:2021-11-22 09:26:26 來(lái)源:億速云 閱讀:148 作者:柒染 欄目:大數(shù)據(jù)

R語(yǔ)言數(shù)據(jù)可視化中的仿網(wǎng)易數(shù)獨(dú)圓環(huán)條形圖是怎樣的,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

一個(gè)案例,告訴你如何靈活的運(yùn)用ggplot2來(lái)制作花樣繁多的信息圖!

雖然ggplot2的內(nèi)置圖層只有屈指可數(shù)的幾十個(gè),可是圖表組合之后的可能性是無(wú)限的。

實(shí)際上還是萬(wàn)變不離其宗,就如同使用Excel模仿復(fù)雜圖表一樣,再?gòu)?fù)雜的圖表也是有不同的元素和模塊組合起來(lái)的,只要能夠用心去拆解,都可以找到行之有效的方法。如同庖丁解牛,只要洞悉骨架和經(jīng)脈,才能隨心所欲的下刀。

R語(yǔ)言數(shù)據(jù)可視化中的仿網(wǎng)易數(shù)獨(dú)圓環(huán)條形圖是怎樣的

setwd("F:/數(shù)據(jù)可視化/R/R語(yǔ)言學(xué)習(xí)筆記/可視化/ggplot2/商務(wù)圖表")

library("ggplot2")

library("tidyr")

library("dplyr")

library("grid")

library("showtext")

library('"Cairo")

library("scales")

font.add("myfont","msyhl.ttc")

mydata<-read.csv("mydata.csv",stringsAsFactors=FALSE,check.names=FALSE) 

mydata$index<-1:nrow(mydata)

mydata$angle1<-1.5*seq(-1,-59)

mydata$angle2<-1.5*seq(59,1)

label<-strsplit(mydata$Country,"")

for (i in 1:length(label)){

label[[i]]<-paste0(label[[i]],collapse="\n")

}

mydata$label<-unlist(label)

mydata$label[37:59]<-gsub("\n","",mydata$label[37:59])

mynewdata<-mydata%>%gather(Class,Value,2:4)

圖形一:

mynewdata$Class<-factor(mynewdata$Class,levels=c("環(huán)保優(yōu)先","其他/未回答","經(jīng)濟(jì)優(yōu)先"),order=T)

p1<-ggplot(data=mynewdata,aes(x=index,y=Value,fill=Class))+

geom_bar(stat="identity",width=0.95)+

geom_text(aes(y=105,label=ifelse(index<=36,label,""),angle=angle1),hjust=.5,vjust=0,family="myfont")+

geom_text(aes(y=105,label=ifelse(index>36,label,""),angle=angle2),hjust=0,vjust=0.5,family="myfont")+

geom_text(aes(y=Value,label=Value,angle=angle2),position=position_stack(vjust=.9),family="myfont")+

xlim(0.5,236.5)+ylim(-120,105)+

coord_polar(theta="x")+

guides(fill=guide_legend(title=NULL))+

scale_fill_manual(values=c("#2EA7E0","#B5B5B6","#CBE510"))+

theme(

text=element_text(size=20),

line=element_blank(),

rect=element_blank(),

axis.text=element_blank(),

axis.title=element_blank(),

legend.position=c(.95,.75),

legend.key.size  =unit(.8,'cm'),

)

以上可以制作出原始案例的外圍圓環(huán)圖:

mydata2<-data.frame(year=c("1998年","2004年","2009年","2014年"),經(jīng)濟(jì)優(yōu)先=c(.24,.27,.23,.28),未回答=c(.25,.21,.23,.15),環(huán)保優(yōu)先=c(.51,.52,.54,.57),smallyear=rep(.15,4),check.names = FALSE)

names(mydata2)[3]<-"其他/未回答"

mydata2$index<-1:nrow(mydata2)

mynewdata2<-mydata2%>%gather(Class,Value,2:5)

mynewdata2$Class<-factor(mynewdata2$Class,levels=c("smallyear","環(huán)保優(yōu)先","其他/未回答","經(jīng)濟(jì)優(yōu)先"),order=T)

p2<-ggplot(data=mynewdata2,aes(x=index,y=Value,fill=Class))+

geom_bar(stat="identity",width=0.99)+

geom_text(aes(y=Value,label=ifelse(mynewdata2$Class=="smallyear",levels(mynewdata2$year),""),angle=c(rep(0,12),11.25*seq(-1,-7,-2))),position=position_stack(vjust=.5),family="myfont",size=7.5)+

geom_text(aes(y=Value,label=ifelse(mynewdata2$Class!="smallyear",percent(mynewdata2$Value),"")),position=position_stack(vjust=.5),family="myfont",size=6)+

xlim(0.5,16.5)+ylim(-.5,1.25)+

coord_polar(theta="x")+

guides(fill=FALSE)+

scale_fill_manual(values=c("#EFEFEF","#2EA7E0","#B5B5B6","#CBE510"))+

theme(

line=element_blank(),

rect=element_blank(),

axis.text=element_blank(),

axis.title=element_blank(),

legend.position="none"

)

以上可以做出內(nèi)側(cè)小圓環(huán)圖:

CairoPNG(file="circletile1.png",width=2000,height=2000)

showtext.begin()

vie<-viewport(width=0.5,height=0.5,x=0.5,y=0.5)

p1;print(p2,vp=vie)

grid.text(label="六成中國(guó)人認(rèn)為\n環(huán)境比經(jīng)濟(jì)更重要",,x=.99,y=.90,gp=gpar(col="black",fontsize=60,draw=TRUE,just="right")

showtext.end()

dev.off()

合并一步,一幅完整的圖表便出爐了!

R語(yǔ)言數(shù)據(jù)可視化中的仿網(wǎng)易數(shù)獨(dú)圓環(huán)條形圖是怎樣的

看完上述內(nèi)容,你們掌握R語(yǔ)言數(shù)據(jù)可視化中的仿網(wǎng)易數(shù)獨(dú)圓環(huán)條形圖是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI