📜  如何在R中的百分比条形图上方添加百分比或计数标签?

📅  最后修改于: 2022-05-13 01:54:25.651000             🧑  作者: Mango

如何在R中的百分比条形图上方添加百分比或计数标签?

在本文中,我们将讨论如何在 R 编程语言中在百分比条形图中添加百分比或计数。

这个包的 ggplot() 方法用于初始化一个 ggplot 对象。它可用于声明图形的输入数据框,也可用于指定绘图美学集。 ggplot()函数用于构造初始绘图对象,并且几乎总是跟随着要添加到绘图中的组件。

geom_bar() 用于绘制条形图。

添加计数

使用 geom_bar() 方法根据每个条形值绘制每个组中出现的多个案例。使用“stat”属性作为“identity”绘图并按原样显示数据。图形还可以在条形顶部使用显示的文本进行注释,以按原样绘制数据。

句法:

可以为标签分配列的值,以将值分配给与每个条形值对应的图的每个条形。

例子:

R
library("ggplot")
  
# creating a data frame
data_frame <- data.frame(col1 = sample(letters[1:10]),
                         col2 = 1:10,
                         col3 = 1)
# printing the data frame
print ("Original DataFrame")
print (data_frame)
  
# plotting a barplot with counts
ggplot(data_frame, aes(x = col1, y = col2, fill = col1)) + 
  geom_bar(stat = "identity") +
  geom_text(aes(label = col2), vjust = 0)


R
# importing the required libraries
library("ggplot")
library("scales")
library("dplyr")
  
# creating a data frame
data_frame <- data.frame(col1 = sample(letters[1:10]),
                         col2 = 1:10
                         )
# printing the data frame
print ("Original DataFrame")
print (data_frame)
  
# plotting a barplot with percentages
data_frame %>% 
  count(col1 = factor(col1), col2 = col2) %>% 
  mutate(col4 = prop.table(col2)) %>% 
  ggplot(aes(x = col1, y = col4, fill = col2, label = scales::percent(col4))) + 
  geom_col(position = 'dodge') + 
  geom_text( vjust = 0) + 
  scale_y_continuous(labels = scales::percent)


输出

[1] "Original DataFrame" 
   col1 col2 col3 
1     j    1    1 
2     d    2    1 
3     b    3    1 
4     a    4    1 
5     g    5    1 
6     e    6    1 
7     f    7    1 
8     i    8    1 
9     c    9    1 
10    h   10    1

添加百分比

同样,可以将百分比添加到图中,但在这种情况下,图例将是连续的,而不是离散的。

例子:

电阻

# importing the required libraries
library("ggplot")
library("scales")
library("dplyr")
  
# creating a data frame
data_frame <- data.frame(col1 = sample(letters[1:10]),
                         col2 = 1:10
                         )
# printing the data frame
print ("Original DataFrame")
print (data_frame)
  
# plotting a barplot with percentages
data_frame %>% 
  count(col1 = factor(col1), col2 = col2) %>% 
  mutate(col4 = prop.table(col2)) %>% 
  ggplot(aes(x = col1, y = col4, fill = col2, label = scales::percent(col4))) + 
  geom_col(position = 'dodge') + 
  geom_text( vjust = 0) + 
  scale_y_continuous(labels = scales::percent)

输出

[1] "Original DataFrame" 
col1 col2 
1     g    1 
2     d    2 
3     j    3 
4     f    4 
5     i    5 
6     e    6 
7     h    7 
8     a    8 
9     c    9 
10    b   10