我正在尝试创建一个类似于以下链接中要求和回答的图表: (Is there a built-in way to do a logarithmic color scale in ggplot2?)。
将上述链接中的问题和接受的答案的代码合并,创建了以下 MWE:
require(ggplot2)
n <- 1e5
df <- data.frame(x = rexp(n), y = rexp(n))
p <- ggplot(df, aes(x = x, y = y)) + stat_binhex()
my_breaks = c(2, 10, 50, 100, 200, 6000)
p + scale_fill_gradient(name = "count", trans = "log", breaks = my_breaks, labels = my_breaks)
这导致了以下图片: 由于某种原因,图例的缩放看起来与上面链接的答案不同。在我创建的图表中,图例会将某些数字挤在一起(例如50、100、200),而链接发布的图表似乎会均匀分布图例数字。下面的图片显示了帖子中创建的图例(左侧)和我的图例(右侧)。 我喜欢链接中的图例美学,想要重现它。你有什么想法我可能做得不同吗?谢谢。
my_breaks = round(exp(seq(log(2), log(6000), length=6)), 0)
,但显然值得调整四舍五入到每10或50等。 - user20650