如何在R中的百分比条形图上方添加百分比或计数标签?
在本文中,我们将讨论如何在 R 编程语言中在百分比条形图中添加百分比或计数。
这个包的 ggplot() 方法用于初始化一个 ggplot 对象。它可用于声明图形的输入数据框,也可用于指定绘图美学集。 ggplot()函数用于构造初始绘图对象,并且几乎总是跟随着要添加到绘图中的组件。
Syntax:
ggplot(data, mapping = aes())
Parameter :
- data – The data frame used for data plotting
- mapping – Default list of aesthetic mappings to use for plot.
geom_bar() 用于绘制条形图。
添加计数
使用 geom_bar() 方法根据每个条形值绘制每个组中出现的多个案例。使用“stat”属性作为“identity”绘图并按原样显示数据。图形还可以在条形顶部使用显示的文本进行注释,以按原样绘制数据。
句法:
geom_text(aes(label = ), vjust )
可以为标签分配列的值,以将值分配给与每个条形值对应的图的每个条形。
例子:
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