gpt4 book ai didi

r - 如何使用 ggplot2 和刻度格式化带有指数的轴标签?

转载 作者:行者123 更新时间:2023-12-02 04:11:37 25 4
gpt4 key购买 nike

使用新版本的 ggplot2 和刻度,我无法弄清楚如何以科学计数法获取轴标签。例如:

x <- 1:4
y <- c(0, 0.0001, 0.0002, 0.0003)

dd <- data.frame(x, y)

ggplot(dd, aes(x, y)) + geom_point()

给我

Example ggplot with scales

我希望轴标签为 0、5 x 10^-5、1 x 10^-4、1.5 x 10^-4 等。我无法找出 的正确组合scale_y_continuous()math_format() (至少我认为这些是我需要的)。

scale_y_log10() log 变换轴,这是我不想要的。 scale_y_continuous(label = math_format()) 只是给我 10^0、10^5e-5 等。我明白为什么后者给出了这个结果,但这不是我想要的。

我正在使用ggplot2_0.9.1和scales_0.2.1

最佳答案

我改编了布莱恩的答案,我想我得到了你想要的。

只需将 parse() 添加到 science_10() 函数(并将“x”更改为正确的“times”符号),您最终会得到以下结果:

x <- 1:4
y <- c(0, 0.0001, 0.0002, 0.0003)

dd <- data.frame(x, y)

scientific_10 <- function(x) {
parse(text=gsub("e", " %*% 10^", scales::scientific_format()(x)))
}

ggplot(dd, aes(x, y)) + geom_point()+scale_y_continuous(label=scientific_10)

enter image description here

您可能仍然希望使该函数更智能,以便它更优雅地处理 0,但我认为仅此而已!

关于r - 如何使用 ggplot2 和刻度格式化带有指数的轴标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com