r - ggplot - 定义小数位的对数轴标签
问题描述
我有一些数据具有相当大的值并且分布在很大的值范围内。因此,我想以对数刻度显示数据。我找到了包裹scales
并设法得到了这个情节:
有了这个虚拟数据:
dummy <- data.frame(
x = "A",
y = 10^runif(100, min = 1, max = 2.5)
)
而这段代码:
ggplot(data = dummy, aes(x = x, y = y)) +
geom_boxplot() +
scale_y_continuous(
trans = log10_trans(),
breaks = trans_breaks("log10", function(x) 10^x),
labels = trans_format("log10", math_format(10^.x))
) +
theme(
text = element_text(size = 16)
)
但是,我希望上标中的数字始终具有相同的小数位数,比如说 1。我怎样才能做到这一点ggplot2
?我试图添加format(..., nsmall = 1)
标签参数的不同部分,但这不起作用。看来我不是很了解这个trans_format()
功能。谁能帮我?
例如:我希望轴标记为 10 2.0,而不是 10 2
解决方案
可能不是一个很有帮助的答案,但也许这个方向的一些东西会有所帮助:
dummy <- data.frame(
x = "A",
y = 10^runif(100, min = 1, max = 2.5)
)
ggplot(data = dummy, aes(x = x, y = y)) +
geom_boxplot() +
scale_y_continuous(
trans = log10_trans(),
breaks = trans_breaks("log10", function(x)
10 ^ x),
labels = function(y){sprintf("10^%.1f", y)}
) +
theme(text = element_text(size = 16),
axis.text = element_markdown())
这给出了这个:
推荐阅读
- javascript - 图像轮廓跟踪:Jacob 停止标准问题
- c - C 漏洞
- php - 如何将值从一个 wpdb->insert 查询复制到另一个 wpdb->insert 查询
- jupyter-notebook - Anaconda 导航器无法打开所有应用程序
- python - 关于 PyPI Stats 下载计数不准确的问题
- python - 如何在 Python 中将日期范围拆分为具有单独部分季度的季度集
- javascript - 如何导出响应 AJAX、Jquery
- python - 如何更改 CNN 或 LSTM 的阵列形状?
- vb.net - 从 MS Access 数据库中水平检索数据
- youtube - 如何从 YouTube 实时获取订阅信息