中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何分析ggplot2樹狀圖

如何分析ggplot2樹狀圖,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供肇慶企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、網(wǎng)站制作、H5網(wǎng)站設計、小程序制作等業(yè)務。10年已為肇慶眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

2017年8月份的R語言更新包中,默默地加入了支持ggplot2樹狀圖的新幾何對象,從此在R語言中制作樹狀圖,不用再求助于第三方包的輔助了。

該包既有Cran上的正式發(fā)行版,也有托管在GitHub上的開發(fā)版,安裝方式如下:

CRAN:

install.package("treemapify")

Github:

devtools::install_github("wilkox/treemapify")

GitHub主頁:

https://github.com/wilkox/treemapify

載入本文章所需的擴展包:

library("ggplot2")

library("treemapify")

library("tweenr")

library("gganimate")

library("RColorBrewer")

安裝該包之后,你的ggplot2中會多出一個樹狀圖幾何對象——geom_treemap()。

實際上我曾經(jīng)分享過一個樹狀圖案例,但是是使用第三方輔助包制作,一直在等ggplot2出樹狀圖圖層。

R語言數(shù)據(jù)可視化之——TreeMap

本次案例使用該(treemapify)包內(nèi)的內(nèi)置數(shù)據(jù)集:

預覽一下數(shù)據(jù)集結(jié)構(gòu):

str(G20)

head(G20)

如何分析ggplot2樹狀圖

該數(shù)據(jù)集描述20峰會參會國家的經(jīng)濟指標,里面包含了五個字段,分別是全球的大區(qū)(region)、國家名稱(country)、GDP指標(gdp_mil_usd)(應該是二次計算的某種指標),人類發(fā)展指數(shù)(hdi),已經(jīng)經(jīng)濟發(fā)展程度(econ_classification)。

字段名稱               類型

region                 因子型

country                因子型

gdp_mil_usd        數(shù)值型(整數(shù))

hdi                        數(shù)值型(浮點)

econ_classification    因子型

樹狀圖是沒有顯式坐標系統(tǒng)的一類特殊圖形,依靠正方化算法,將樣本總體正方形按照實際觀測值占總體比例分割成單個矩形方塊。因而其至少需要一個數(shù)值型變量作為輸入?yún)?shù)。

一個簡單的樹狀圖:

ggplot(G20, aes(area = gdp_mil_usd)) + 

  geom_treemap()

如何分析ggplot2樹狀圖

因為area僅僅是定義了一個數(shù)值型變量的方塊大小,填充顏色是可以單獨定義的。但是顏色往往也可以單獨作為一個數(shù)值型度量的表達方式。

ggplot(G20, aes(area = gdp_mil_usd)) + 

  geom_treemap(fill="steelblue")

如何分析ggplot2樹狀圖

ggplot(G20, aes(area = gdp_mil_usd, fill = hdi)) + 

  geom_treemap()+

  scale_fill_distiller(palette="Greens")

如何分析ggplot2樹狀圖

添加標簽:

包作者針對ggplot樹狀圖寫了優(yōu)化好的文本 標簽函數(shù)geom_treemap_text(剛開始就說過樹狀圖超越了傳統(tǒng)三大坐標系的范疇,沒有顯式聲明的坐標系統(tǒng),算法比較特殊因而無法使用常規(guī)的geom_text()進行添加標簽)。

ggplot(G20, aes(area = gdp_mil_usd, fill = hdi, label = country)) +

  geom_treemap() +

  geom_treemap_text(fontface = "italic", colour = "red", place = "centre",grow = TRUE,alpha=.6)+

  scale_fill_distiller(palette="Greens")

如何分析ggplot2樹狀圖

其中place參數(shù)控制每一個方塊中標簽相對于四周的位置,grow則控制標簽是否與方塊大小自適應(呈大致比例放大縮?。?/p>

次級分組(亞群):

該包支持次級分組(專業(yè)術(shù)語叫做亞群),這在實際應用場景中非常廣泛,比如我們在觀察國家指標大小的同時,還想獲取國家所屬大區(qū)的總體指標,通過加入次級分組,我們可以獲取兩個維度信息。通過在美學映射中設置subgroup參數(shù)(一個類別型變量),函數(shù)內(nèi)部可以自動完成亞群的變量聚合計算,并在圖形成用框線顯示出次級類別大小的規(guī)模。

ggplot(G20, aes(area = gdp_mil_usd, fill = hdi, label = country,subgroup = region)) +

  geom_treemap() +

  geom_treemap_subgroup_border() +

  geom_treemap_subgroup_text(place = "centre", grow = T, alpha = 0.5, colour ="black", fontface = "italic", min.size = 0) +

  geom_treemap_text(colour = "red", place = "topleft", reflow = T,alpha=.5)+

  scale_fill_distiller(palette="Greens")

如何分析ggplot2樹狀圖

其中reflow參數(shù)用于控制標簽是否自適應矩形塊大小,若按照原始大小超過矩形塊,則會自動換行顯示。

分面系統(tǒng):

當你覺得使用次級分組不能獲得一個很好地視覺呈現(xiàn)效果,geom_treemap還支持ggplot函數(shù)中的fact_grid分面參數(shù),這就是所有g(shù)gplot2擴展函數(shù)的好處,可以繼承源自于ggplot2的高級圖形屬性。

ggplot(G20, aes(area = gdp_mil_usd, fill = region, label = country)) +

  geom_treemap() +

  geom_treemap_text(grow = T, reflow = T, colour = "black") +

  facet_wrap( ~ econ_classification) +

  scale_fill_brewer(palette="Blues")+

  labs(

 title = "The G-20 major economies",

caption = "The area of each country is proportional to its relative GDP within the economic group (advanced or developing)",

 fill = "Region" )+

theme(legend.position = "bottom",

plot.caption=element_text(hjust=0)) 

如何分析ggplot2樹狀圖

GIF動畫流:

借助tweened包提供的差值方法,你可以實現(xiàn)將不同時間點的截面數(shù)據(jù)進行追加,并且編組成gganimate函數(shù)可識別的動畫幀組,通過tweenlength、statelength和nframes 參數(shù)來控制變化的長度、每一幀停留的時間以及切換的幀數(shù)。

G20_alt <- G20

G20_alt$gdp_mil_usd <- sample(G20$gdp_mil_usd, nrow(G20))

G20_alt$hdi <- sample(G20$hdi, nrow(G20))

tweened <- tween_states(list(G20,G20_alt,G20), tweenlength = 8, statelength = 5, ease = 'cubic-in-out', nframes = 30)

animated_plot <- ggplot(tweened, aes(area = gdp_mil_usd, fill = hdi,label = country, subgroup = region,frame = .frame)) +

  geom_treemap(fixed = T) +

  geom_treemap_subgroup_border(fixed = T) +

  geom_treemap_subgroup_text(place = "centre", grow = T, alpha = 0.5,colour = "black", fontface = "italic", min.size = 0,fixed = T) +

  geom_treemap_text(colour = "white", place = "topleft", reflow = T, fixed = T)+

  scale_fill_distiller(palette="Greens")

ani.options(interval = 1/10)

gganimate(animated_plot, "E:/animated_treemap.gif", title_frame = F,ani.width = 1000, ani.height = 800)

如何分析ggplot2樹狀圖

treemapify包給ggplot2提供的geom_treemap(),填補了ggplot2原生幾何對象在樹狀圖領域的空白,可謂是進一步擴展、豐富ggplot2生態(tài)系統(tǒng)。

關于如何分析ggplot2樹狀圖問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。

網(wǎng)站欄目:如何分析ggplot2樹狀圖
網(wǎng)站地址:http://www.rwnh.cn/article2/ihjpoc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、品牌網(wǎng)站建設、企業(yè)網(wǎng)站制作、網(wǎng)站設計公司網(wǎng)站設計、面包屑導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
林甸县| 尼勒克县| 长沙县| 高碑店市| 兴义市| 濮阳县| 南丰县| 昌都县| 庆安县| 阿鲁科尔沁旗| 旌德县| 张掖市| 西平县| 寻乌县| 奎屯市| 永修县| 昌图县| 瓦房店市| 大关县| 琼海市| 庆元县| 邛崃市| 临沂市| 都昌县| 汾西县| 庄河市| 遂溪县| 泰州市| 古交市| 城步| 松滋市| 子洲县| 延长县| 汕尾市| 临高县| 临夏市| 西乌珠穆沁旗| 大同县| 南投县| 栖霞市| 鄂托克旗|