如何在ggplot箱线图中将中位数文本标签改为浅色(如白色)?
在ggplot箱线图中为中位数文本着色的解决方案
嘿,针对你问的两个问题——给箱线图里的中位数文本上色,以及把它改成白色这类浅色,其实只需要在geom_text()里加个参数就能搞定,很简单!
修改后的完整可运行代码
set.seed(1) library(plyr) library(ggplot2) # 别忘了加载ggplot2,原示例里没写这行哦 # 生成示例数据 DF <- data.frame(TYPE = sample(letters[1:3], 500, replace = TRUE), PROVIDER = letters[1:5], VALUE = rnorm(500)) # 按TYPE和PROVIDER分组计算中位数 meds <- ddply(DF, .(TYPE, PROVIDER), summarize, med = median(VALUE)) # 绘制带白色中位数文本的箱线图 ggplot(DF, aes(x = PROVIDER, y = VALUE)) + geom_boxplot(fill = "#44546A") + facet_wrap(~TYPE) + geom_text(data = meds, aes(y = med, label = round(med,2)), size = 3, vjust = -0.5, color = "white") # 核心:这里指定文本颜色为白色
额外说明
- 自定义浅色:如果你不想用白色,想换其他浅色,直接把
color参数的值换成对应的颜色就行。比如淡灰色可以写color = "#f0f0f0",或者直接用颜色名称color = "lightgray"; - 小提醒:原代码里一定要加载
ggplot2包,不然ggplot()和相关图层函数会找不到哦~
内容的提问来源于stack exchange,提问作者Dipojjal Saha
相关产品推荐
相关产品推荐

