拓端tecdat|R語言GGPLOT2繪制圓環(huán)圖雷達(dá)圖/星形圖/極坐標(biāo)圖/徑向圖Polar Chart可視化
原文鏈接:http://tecdat.cn/?p=24896
原文出處:拓端數(shù)據(jù)部落公眾號

漂亮的圓形圖。我不確定對數(shù)據(jù)分析師本身是否有額外的好處,但如果能吸引決策者的注意,那對我來說就是額外的價值。
然而,用coord_polar()或偶爾發(fā)現(xiàn)的ggplot2中的coord_radar()構(gòu)建它們可能很難。我發(fā)現(xiàn)的兩個主要問題是,極坐標(biāo)的變化會使你的路徑彎曲成圓形,而且雷達(dá)無法與geom_bin結(jié)合使用來填充背景。
這就是為什么我通常在笛卡爾坐標(biāo)系統(tǒng)中使用。更像是一種數(shù)學(xué)解決方案。映射您的數(shù)據(jù)和繪圖需求,使其最終成為圓環(huán)。作為一個額外的好處,我還發(fā)現(xiàn)它的構(gòu)建/加載速度更快。對我來說很重要,因為我讓它們在 Shiny Apps 中交互。
我在示例中使用了 mtcars 數(shù)據(jù)。該圖顯示了集合中的 12 輛汽車:
背景中的氣缸。4、6 和 8 缸的淺色、中色和深色。
用藍(lán)色標(biāo)出每輛車每加侖的里數(shù)。
這篇文章是逐步展示如何將所需的元素添加到圓形圖中。很多東西可能可以改進(jìn),請隨時發(fā)表評論。
我使用前 12 輛汽車,并希望有一列包含行名。
add_rownames[1:12,]
繪制數(shù)據(jù)映射
為了映射我想繪制的任何列的值,我創(chuàng)建了函數(shù)。它基本上會檢查您想要繪制多少個變量并為 x 和 y 值繪制正弦曲線。
lev <- levels
num <- length
dir <- rep
dir_ <- map_dbl
interp
data <- mutate_
存儲映射數(shù)據(jù)以映射所有標(biāo)簽的 mpg 變量。
# 數(shù)據(jù)點
rotate_data
我想展示繪圖范圍數(shù)據(jù),所以我偽造了一系列 qsec 數(shù)據(jù)?;旧希鸀槊枯v車(標(biāo)簽)上的 qsec 生成一個具有多個值(行)的數(shù)據(jù)框。
#編造一些范圍數(shù)據(jù)
bind_rows
rotate_data
使用polygon 繪制范圍,使用 path 和 point 繪制 mpg 值。
lim <- max
# ?用自己的數(shù)據(jù)和美學(xué)來繪制每一層的圖案
ggplot() +
geom_polygon+
geom_point+
theme+
coord_equal

徑向線
我猜想要的網(wǎng)格是由帶圓圈的徑向向外線組成的。創(chuàng)建 x、xend、y 和yend 數(shù)據(jù)點以繪制其間的線段。
r <- data_frame %>%
mutate
r$xed <- 0
r$yed <- 0
#用自己的數(shù)據(jù)和美學(xué)來繪制每一層的圖案
ggplot() +
geom_segment +
geom_polygon+
geom_point +
ylim + xlim +
theme+
coord_equal

標(biāo)簽
為您旋轉(zhuǎn)的變量添加文本標(biāo)簽。
label <- levels
ggplot() +
geom_segment +
geom_polygon +
geom_path +
geom_point +
geom_text+
theme +
coord_equal

繪制圓圈
要繪制圓圈,我將使用帶有填充選項的 circle。
t <- seq
d <- data.frame
if(fed==TRUE) { # #在中心添加一個點,使整個 "餅 "被填滿
d <- rbind
}
return(d)
網(wǎng)格圓圈和標(biāo)簽
圓形網(wǎng)格線是通過多次調(diào)用 circle 并將所有點存儲在數(shù)據(jù)框中來構(gòu)建的。
cregrd <- data_frame
crld <- cili %>%
mutate
poties <- bind_rows
loics$lv <- as.factor
可以通過多種方式添加圓形標(biāo)簽。但是為了簡單地將所有軸文本和軸標(biāo)簽設(shè)置為blank,我構(gòu)建了一個可以使用 text 繪制的數(shù)據(jù)框。
c <- data_frame
cl <- cl[x <= max,]
ggplot() +
geom_segment +
geom_path+
geom_text+
geom_polygon +
geom_point +
geom_text + xlim +
theme+
coord_equal

背景
使用 circle,您還可以輕松構(gòu)建圓部分,您可以使用 Filled = TRUE 參數(shù)填充該部分。有一點 -1/num 偏移以使該部分正確對齊。在這里,您提出了您要為其著色的因子變量。當(dāng)然,您還可以更改代碼以根據(jù)變量更改每個條的“高度”。
num ? ? ?<- length
levels ? <- rev
tart ? ?<- seq
bg ?<- data_frame
mutate
bgdta <- tdf
bgdta$lv <- as.factor
中心圓
細(xì)節(jié)不多,但您可能想添加一些中心圓。
lm <- max
ggplot() +
geom_polygon+
geom_segment +
geom_path+
geom_text +
geom_polygon+
geom_polygon+
geom_path +
geom_point +
geom_text +
ylim + xlim +
theme +
coord_equal


最受歡迎的見解
1.R語言動態(tài)圖可視化:如何、創(chuàng)建具有精美動畫的圖
2.R語言生存分析可視化分析
3.Python數(shù)據(jù)可視化-seaborn Iris鳶尾花數(shù)據(jù)
4.r語言對布豐投針(蒲豐投針)實驗進(jìn)行模擬和動態(tài)
5.R語言生存分析數(shù)據(jù)分析可視化案例
6.r語言數(shù)據(jù)可視化分析案例:探索brfss數(shù)據(jù)數(shù)據(jù)分析
7.R語言動態(tài)可視化:制作歷史全球平均溫度的累積動態(tài)折線圖動畫gif視頻圖
8.R語言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析案例報告
9.python主題LDA建模和t-SNE可視化