我没有使用r
,但我最近决定使用它绘制图表 - 因为它有很强的能力。
我想让我的图表更好。具体来说,我会在数字上绘制数字。
我看到了Adding labels to ggplot bar chart,我尝试使用
geom_text(aes(x=years, y=freq, ymax=freq, label=value,
hjust=ifelse(sign(value)>0, 1, 0)),
position = position_dodge(width=1)) +
但数字未能出现。
这是我的代码:
# Load ggplot2 graphics package
library(ggplot2)
# Create dataset
dat <- data.frame(years = c("1991", "1993", "1997", "2001", "2005", "2007", "2011", "2015"),
freq = c(43.20, 52.13, 47.93, 46.29, 40.57, 53.88, 48.92, 50.92))
# Plot dataset with ggplot2
ggplot(dat, aes(years, freq)) + geom_bar(stat = "identity", width=0.55)
+ labs(x="Year",y="") + theme_classic()
# Comma as decimal mark
format(df, decimal.mark=",")
答案 0 :(得分:5)
在ggplot2中,您可以使用<div id="parent">
<p id="para-1">Lorem Ipsum</p>
</div>
<button onclick="cloneFunction()">clone it</button>
来实现此目的。需要为此几何图形geom_text()
提供要显示的内容(aes()
)和定位。
您可以在label
的调用中使用format
将逗号作为小数分隔符。
aes()
这样做更为惯用:
ggplot(dat, aes(years, freq)) +
geom_bar(stat = "identity", width=0.55) +
geom_text(aes(label=format(freq,decimal.mark = ","), y=freq+1.1)) +
scale_y_continuous(breaks = seq(0,50,10)) +
theme_classic()
因为 library(scales)
ggplot(dat, aes(years, freq)) +
geom_bar(stat = "identity", width=0.55) +
geom_text(aes(label=comma(freq), y=freq+1.1)) +
scale_y_continuous(breaks = seq(0,50,10)) +
theme_classic()
包内置了许多方便的贴标机。
希望这有帮助。