r - 如何在 R 中使用 ggplot2 将 y 轴更改为百分比?
问题描述
我在 R 中有一个这样的代码段,用于绘图:
plot_bar <- function(x, y, min, max, color = plot_colors[2]) {
p <- ggplot(data.frame(as.integer(x), y)) +
geom_bar(aes(x, y), stat = "identity", position = "dodge", fill = color) + ylim(min, max) +
theme_light() + theme(text = element_text(size = 25), axis.title.x = element_blank(), axis.title.y = element_blank())
return(p)
}
这对我有用,并产生如下内容:
基本上,(-2,+2)
从函数中的值min
和max
参数传递给我的情节。但问题是,(-2.+2)
我想要的不是 y 轴(-0.1%,+0.1%)
。是否可以更改 y 轴上的文本?
解决方案
使用功能scale_y_continuous()
。它有一个论点labels
。您可以为此参数提供任何功能,以将您拥有的标签转换为正确的标签。
在您的情况下,如果您想将区间 [-2;2] 映射到 [-0.1; 0.1] 你可以做什么:
p <- ggplot(...) + geom_*(...)
p + scale_y_continuous(labels = function(x) paste0(x/20, "%"))
所以这个函数获取每个数字标签,将其除以 20 并转换为字符。
希望这就是你要找的。
推荐阅读
- neo4j - Neo4J Bloom 不显示属性或类别
- ruby-on-rails - 在heroku上成功部署后Rails应用程序无法正常工作?
- oracle - Spring JPA 标准生成器大于:我可以传递字符串值以比较数据库中的数字类型吗
- ibm-midrange - AS400 中的 Json_table
- r - 如何在 R 中创建时间循环序列
- api - 如何在 django-rest 中通过一个 API 显示不同的数据?
- java - 霍夫曼:无法解压缩“æ”、“ø”、“å”和“•”等字符
- postgresql - 自动化 postgres zalando - 凭证轮换策略[每 90 天]
- sql - 如何仅在特定字段的 Access 查询中返回唯一值
- javascript - 在对象与数组中解构未定义