簡體   English   中英

如何在r中繪制多個餅圖

[英]How to draw multiple pie chart in r

我想用R繪制一個多餅圖。我有數據包含3個級別的信息,我想在第三級突出顯示信息。 例如,我的樣本大小為48,在第一級中分為12和36。 然后,12被分成3和9,36被分成第二級中的24和12。 在第三級,3進一步分為1和2,24進一步分為15和9.我想呈現所有3個級別的數據,但只需要突出顯示3和24的划分。

我想畫一個多餅圖在R中顯示它,但我不知道R是否能夠做到。 由於我需要准確的百分比,我不能使用Photoshop繪制圖表。

如果R不能這樣做,我想知道我可以用什么來繪制圖表? 任何幫助,將不勝感激。 提前致謝!

我剛剛找到了另一個答案,比ggplot2簡單得多。 仍然假設你有這樣的數據:

> df = data.frame(type = c("A", "A", "B", "B", "B", "B"), subtype = c("X1", "X2", "X1.a", "X1.b", "X2.a", "X2.b"), value = c(12, 36, 3, 9, 24, 12))
  type subtype value
1    A      X1    12
2    A      X2    36
3    B    X1.a     3
4    B    X1.b     9
5    B    X2.a    24
6    B    X2.b    12

你可以做:

par(mfrow = c(1,2))
pie(df[1:2,]$value, labels = df[1:2,]$subtype)
pie(df[3:6,]$value, labels = df[3:6,]$subtype)

結果實際上是正確標記的:

餅狀圖

由於您沒有提供正確的樣本數據,我將構建您描述的3步數據的兩步版本。 我會留給你概括的。

這是數據(注意我將數據划分為類型和子類型,並構建一個三列數據集......您的最終版本將是相同的,但具有“C”類型和一些新的子類型):

> df = data.frame(type = c("A", "A", "B", "B", "B", "B"), subtype = c("X1", "X2", "X1.a", "X1.b", "X2.a", "X2.b"), value = c(12, 36, 3, 9, 24, 12))
  type subtype value
1    A      X1    12
2    A      X2    36
3    B    X1.a     3
4    B    X1.b     9
5    B    X2.a    24
6    B    X2.b    12

這是我用ggplot2包做餅圖的方法:

library(ggplot2)
ggplot(df, aes(x = factor(1), y = value, fill = factor(subtype))) + 
    geom_bar(stat = "identity", width = 1) + 
    theme(legend.position = "none") +
    scale_x_discrete(NULL, expand = c(0,0)) +
    scale_y_continuous(NULL, expand = c(0,0)) + 
    coord_polar(theta = "y") +
    facet_wrap(~type)

結果:

餅圖原型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM