中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析ggplot2樹狀圖

發布時間:2022-01-15 11:37:19 來源:億速云 閱讀:172 作者:柒染 欄目:大數據

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

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

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

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()。

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

R語言數據可視化之——TreeMap

本次案例使用該(treemapify)包內的內置數據集:

預覽一下數據集結構:

str(G20)

head(G20)

如何分析ggplot2樹狀圖

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

字段名稱               類型

region                 因子型

country                因子型

gdp_mil_usd        數值型(整數)

hdi                        數值型(浮點)

econ_classification    因子型

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

一個簡單的樹狀圖:

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

  geom_treemap()

如何分析ggplot2樹狀圖

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

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樹狀圖寫了優化好的文本 標簽函數geom_treemap_text(剛開始就說過樹狀圖超越了傳統三大坐標系的范疇,沒有顯式聲明的坐標系統,算法比較特殊因而無法使用常規的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參數控制每一個方塊中標簽相對于四周的位置,grow則控制標簽是否與方塊大小自適應(呈大致比例放大縮小)

次級分組(亞群):

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

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參數用于控制標簽是否自適應矩形塊大小,若按照原始大小超過矩形塊,則會自動換行顯示。

分面系統:

當你覺得使用次級分組不能獲得一個很好地視覺呈現效果,geom_treemap還支持ggplot函數中的fact_grid分面參數,這就是所有ggplot2擴展函數的好處,可以繼承源自于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包提供的差值方法,你可以實現將不同時間點的截面數據進行追加,并且編組成gganimate函數可識別的動畫幀組,通過tweenlength、statelength和nframes 參數來控制變化的長度、每一幀停留的時間以及切換的幀數。

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生態系統。

關于如何分析ggplot2樹狀圖問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潍坊市| 永福县| 海城市| 蓬溪县| 漯河市| 祁门县| 斗六市| 普格县| 赣州市| 台中县| 攀枝花市| 永嘉县| 库尔勒市| 九江市| 彭水| 邢台市| 溧水县| 泸定县| 汾西县| 尉氏县| 田林县| 武宣县| 仲巴县| 博乐市| 晴隆县| 荣昌县| 遵义县| 石城县| 乌拉特中旗| 长海县| 蒙自县| 桂东县| 洮南市| 乌兰察布市| 唐海县| 怀集县| 昌江| 金华市| 广元市| 朝阳县| 会同县|