您好,登錄后才能下訂單哦!
如何分析ggplot2分面氣泡圖餅圖,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
ggplot2系統內的分面函數只有簡單的一個facet_grid(),但是恰恰就是這么一個不很起眼,甚至看起來有些特立獨行的分面函數,卻給高維數據可視化帶來了革命性的變化,有了它,所有基于ggplot2的可視化圖形都能夠擴展呈現 維度,從第三維、第四維、第五維(理論上來說)。
還是再強調一下facet_grid()在ggplot2各個幾何圖層中的地位和控制范圍,分面函數作為一個特殊的,具有美學映射屬性,卻被設計在了與幾何圖層近乎獨立地位(表現在從寫法上來看,它并沒有被設計在幾何圖層內,而是與其他幾何圖層在位置上平行),由此可見包作者對其的推崇和重視。
它的控制權限是很高的,倘若你在facet_grid()函數內部指定了一個分面參數,那么剩余的所有幾何圖層都可以自動適用這個分面(當然前提是各幾何圖層的美學映射中都好含有與分面參數相同的變量)。
所以想要分面參數同事控制多個圖層,必須保證每一個圖層內都含有該分面參數同名的變量。
今天以氣泡餅圖為例:
library(ggplot2)
library(dplyr)
library(rgdal)
library(shiny)
library(shinythemes)
library(scatterpie)
china_map <-readOGR("D:/R/mapdata/State/china.geojson","OGRGeoJSON",stringsAsFactors=FALSE) Encoding(china_map@data$name)<-"UTF-8"china_map <- fortify(china_map) province_city <- read.csv("D:/R/rstudy/Province/chinaprovincecity.csv",stringsAsFactors = FALSE,check.names=FALSE)
city_data<-data.frame(Name=rep(c("北京","上海","重慶","武漢","廣州","西安")))
for (i in 2:7) city_data[,i]<-round(runif(6,0,250))
names(city_data)[2:7]<-paste0("Year",2011:2016)
city_data$Full<-apply(city_data[,-1],1,sum)
city_data$Full_scale<-scale(city_data$Full,center=F,scale=T)*2
#提取中心城市數據:
city_data<-city_data%>%merge(province_city[,c("city","wd","jd")],by.x="Name",by.y="city",all.x=TRUE)
ggplot() +
geom_polygon(data=china_map,aes(x=long,y=lat,group=group),fill="white",color="grey")+
geom_scatterpie(data=city_data,aes(x=jd,y=wd,r=Full_scale),cols=names(city_data)[2:7],color="grey", alpha=.8) +
scale_fill_brewer(guide=FALSE)+
theme_void()
city_data2<-data.frame(Name=rep(city_data$Name,6))
for (i in 2:4) city_data2[,i]<-runif(nrow(city_data2),10,100)
names(city_data2)[2:4]<-paste0("Value",1:3)
city_data2$Year<-rep(paste0("Year",2011:2016),each=6)
city_data2<-city_data2%>%merge(city_data[,c("Name","jd","wd")],by="Name",all.x=T)
city_data2$Full<-apply(city_data2[,2:4],1,sum)%>%scale(center=F,scale=T)
city_data2$Full<-as.numeric(city_data2$Full)*2
city_data2<-city_data2%>%arrange(Year,Name)
ggplot()+ geom_polygon(data=china_map,aes(x=long,y=lat,group=group),fill="white",color="grey")+ geom_scatterpie(data=city_data2,aes(x=jd,y=wd,r=Full),cols=names(city_data2)[2:4],color="grey", alpha=.8) + scale_fill_brewer(guide=FALSE)+ facet_wrap(~Year)+ theme_void()
關于如何分析ggplot2分面氣泡圖餅圖問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。