您好,登錄后才能下訂單哦!
這篇文章主要講解了“R語言可視化中極坐標變換與衍生圖表類型有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“R語言可視化中極坐標變換與衍生圖表類型有哪些”吧!
今天這篇內容會比較雜亂一點,因為會講到ggplot函數中的一大類通過極坐標支持才能呈現出來的圖表效果。
ggplot作圖背后的圖表哲學,沒有給予餅圖(以及衍生出的圓環圖、玫瑰圖等放射狀圖表類型)存在的空間(主要是該包的開發者個人的審美觀,比較反感次坐標軸以及功能類型雷同的重復性圖層函數,所以它寧可開發出分面圖層原理也不愿意增加次坐標軸,不愿意為原本柱形圖可以表達的圖表形式再單獨開發一種功能雷同的餅圖函數)。
但是巧的是,在常見的三種坐標形式中,極坐標轉換可以非常輕松的將常見的柱形圖(條形圖)、堆積柱形圖通過只一句極坐標函數就神奇的轉化為餅圖、玫瑰圖、圓環圖等(不知道是有意為之還是偶然的巧合)。
餅圖需要借助柱形圖結合極坐標進行轉化:
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()
當使用一個因子變量作為橫軸,使用分類變量進行填充時,該柱形圖變成了單條堆積柱形圖。
接下來我們通過以上函數添加極坐標(注意極坐標的設定是如何影響最終的圖表形式的)
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()+coord_polar(theta = "y")
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()+coord_polar(theta = "x")
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar()+coord_polar()
從做出的圖表以及極坐標函數內的參數我們可以看出來,當參數指定為x時,最終柱形圖的x軸會被指定為極坐標的x軸(圓周),而柱形圖的y軸則會成為極坐標的y軸(半徑)。當指定為y軸時,柱形圖的y軸為成為極坐標的x軸(圓周),柱形圖的x軸會成為極坐標的y軸(半徑)。
同時極坐標狀態下,餅圖的半徑是由柱形圖柱形圖寬度決定的,以上圖表中圓心有個空白,如果我們將柱形圖柱形圖寬度定義為1,則會成為正圓。
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar(width=1)+coord_polar(theta = "y")
圖中其他的元素控制方式與往常的柱形圖做法一樣:
去掉極坐標軸的軸刻度標簽,去掉兩個軸標題、更換配色:
ggplot(diamonds,aes(x=factor(1),fill=cut))+geom_bar(width=1)+coord_polar(theta = "y",start=0)+theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank())+scale_fill_brewer(palette="Blues")+guides(fill=guide_legend(reverse=TRUE,title=NULL))
當有多個序列時:
ggplot(diamonds,aes(cut))+geom_bar(width=1)
通過極坐標轉換可以實現圓環圖、圓條圖效果:
ggplot(diamonds,aes(cut))+geom_bar(width=1,fill="steelblue",colour="white")+coord_polar(theta = "y",start=0)+theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text.x = element_blank(),axis.title = element_blank())
改變極坐標軸參數設置,可以模擬南丁格爾玫瑰圖效果:
ggplot(diamonds,aes(cut))+geom_bar(width=0.95,fill="#3182BD")+coord_polar(theta = "x",start=0)+theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text.y = element_blank(),axis.ticks= element_blank(),axis.title = element_blank())+ylim(c(-3000,22500))
當然如果你使用的原始柱形圖數據中添加了分類序列(也就是堆積柱形圖),按照上面的方式可以制作更加復雜的圓環圖、堆疊玫瑰圖
ggplot(diamonds,aes(x=color,fill=cut))+geom_bar(width=0.95,colour="white")+coord_polar(theta = "y",start=0)+theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text.x = element_blank(),axis.title = element_blank())+scale_fill_brewer(palette="Blues")+guides(fill=guide_legend(reverse=TRUE,title=NULL))
ggplot(diamonds,aes(x=color,fill=cut))+geom_bar(width=0.95,colour="white")+coord_polar(theta = "x",start=0)+theme(axis.text.y = element_blank(),axis.title = element_blank())+scale_fill_brewer(palette="Blues")+guides(fill=guide_legend(reverse=TRUE,title=NULL))+ylim(c(-2000,12000))+theme_bw()
嘗試著用分面來解決多序列問題:
ggplot(diamonds,aes(x=color,fill=cut))+geom_bar(width=0.95,colour="white")+coord_polar(theta = "x",start=0)+theme(axis.text.y = element_blank(),axis.title = element_blank())+scale_fill_brewer(palette="Blues")+guides(fill=guide_legend(reverse=TRUE,title=NULL))+ylim(c(-2000,6000))+theme_bw()+facet_grid(.~cut)
感謝各位的閱讀,以上就是“R語言可視化中極坐標變換與衍生圖表類型有哪些”的內容了,經過本文的學習后,相信大家對R語言可視化中極坐標變換與衍生圖表類型有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。