gpt4 book ai didi

r - ggplot2 中有没有内置的方法可以进行对数色标?

转载 作者:行者123 更新时间:2023-12-03 05:36:45 25 4
gpt4 key购买 nike

以下是分箱密度图的示例:

library(ggplot2)
n <- 1e5
df <- data.frame(x = rexp(n), y = rexp(n))
p <- ggplot(df, aes(x = x, y = y)) + stat_binhex()
print(p)

enter image description here

调整色阶以便中断是对数间隔的会很好,但是尝试一下

my_breaks <- round_any(exp(seq(log(10), log(5000), length = 5)), 10)
p + scale_fill_hue(breaks = as.factor(my_breaks), labels = as.character(my_breaks))

导致错误:连续变量()提供给离散的scale_hue。看起来breaks需要一个因子(也许?)并在设计时考虑到分类变量?

有一个非内置的解决方法,我将作为答案发布,但我想我可能只是在使用 scale_fill_hue 时迷失了方向,我想知道是否有我缺少任何明显的东西。

最佳答案

是的! scale_fill_gradient 有一个 trans 参数,我之前错过了。这样我们就可以得到一个具有适当图例和色阶以及简洁语法的解决方案。使用问题中的 pmy_breaks = c(2, 10, 50, 250, 1250, 6000):

p + scale_fill_gradient(name = "count", trans = "log",
breaks = my_breaks, labels = my_breaks)

enter image description here

我的另一个答案最适合用于更复杂的数据函数。 Hadley 的评论鼓励我在 ?scale_gradient 底部的示例中找到这个答案。

关于r - ggplot2 中有没有内置的方法可以进行对数色标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8069837/

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