百分比而不是ggplot中的计数
Percentage instead of count in ggplot
我刚刚开始编程。
我有这个数据框:
data1 = data.frame(NSE=c("A-B", "C", "D-E"), Percentage=c(68, 66, 63))
我做了这个条形图:
a = ggplot(data1, aes(x=NSE, y=Percentage))+
geom_bar(stat = "identity", width=0.6, fill = "red", color = "grey40", alpha = 5)+
geom_text(aes(label=Percentage), vjust=1.5, color="white",
size=3)+
ggtitle("No se sintieron discriminados en los últimos
doce meses, según NSE (en porcentaje)")+labs(y="", x="")+
theme(plot.title = element_text(color="black", size=10, face="bold"))+ylim(0,100)
它创建了三个对应于值 68、66 和 63 的条形图。但我希望条形图将这些值显示为百分比(68%、66%、63%)。我应该怎么做才能得到那个?
提前谢谢你。
使用 scales::percent
和 scales::percent_format
可以这样实现:
library(ggplot2)
library(scales)
data1 = data.frame(NSE=c("A-B", "C", "D-E"), Percentage=c(68, 66, 63))
ggplot(data1, aes(x=NSE, y=Percentage))+
geom_bar(stat = "identity", width=0.6, fill = "red", color = "grey40", alpha = 5)+
geom_text(aes(label=scales::percent(Percentage, scale = 1, accuracy = 1)), vjust=1.5, color="white",
size=3)+
scale_y_continuous(labels = scales::percent_format(scale = 1, accuracy = 1), limits = c(0,100)) +
ggtitle("No se sintieron discriminados en los ultimos
doce meses, segun NSE (en porcentaje)")+labs(y="", x="")+
theme(plot.title = element_text(color="black", size=10, face="bold"))
由 reprex package (v0.3.0)
于 2020-08-02 创建
如果不使用 scales
包,可以简单地使用
function(x) paste0(round(x*100), "%)
在geom_text
的label
审美中,如下:
+ geom_text(aes(label=paste0(round(Percentage), "%")), vjust=1.5, color="white",
size=3)
此外,在 scale_y_continuous
的 labels
参数中,也可以这样做,就像这样
+ scale_y_continuous(labels = function(x) paste0(round(x), "%"))
我刚刚开始编程。 我有这个数据框:
data1 = data.frame(NSE=c("A-B", "C", "D-E"), Percentage=c(68, 66, 63))
我做了这个条形图:
a = ggplot(data1, aes(x=NSE, y=Percentage))+
geom_bar(stat = "identity", width=0.6, fill = "red", color = "grey40", alpha = 5)+
geom_text(aes(label=Percentage), vjust=1.5, color="white",
size=3)+
ggtitle("No se sintieron discriminados en los últimos
doce meses, según NSE (en porcentaje)")+labs(y="", x="")+
theme(plot.title = element_text(color="black", size=10, face="bold"))+ylim(0,100)
它创建了三个对应于值 68、66 和 63 的条形图。但我希望条形图将这些值显示为百分比(68%、66%、63%)。我应该怎么做才能得到那个?
提前谢谢你。
使用 scales::percent
和 scales::percent_format
可以这样实现:
library(ggplot2)
library(scales)
data1 = data.frame(NSE=c("A-B", "C", "D-E"), Percentage=c(68, 66, 63))
ggplot(data1, aes(x=NSE, y=Percentage))+
geom_bar(stat = "identity", width=0.6, fill = "red", color = "grey40", alpha = 5)+
geom_text(aes(label=scales::percent(Percentage, scale = 1, accuracy = 1)), vjust=1.5, color="white",
size=3)+
scale_y_continuous(labels = scales::percent_format(scale = 1, accuracy = 1), limits = c(0,100)) +
ggtitle("No se sintieron discriminados en los ultimos
doce meses, segun NSE (en porcentaje)")+labs(y="", x="")+
theme(plot.title = element_text(color="black", size=10, face="bold"))
由 reprex package (v0.3.0)
于 2020-08-02 创建如果不使用 scales
包,可以简单地使用
function(x) paste0(round(x*100), "%)
在geom_text
的label
审美中,如下:
+ geom_text(aes(label=paste0(round(Percentage), "%")), vjust=1.5, color="white",
size=3)
此外,在 scale_y_continuous
的 labels
参数中,也可以这样做,就像这样
+ scale_y_continuous(labels = function(x) paste0(round(x), "%"))