我想在以下代码中的图例中添加最大值
library(reshape2)
library(ggplot2)
v <- melt(volcano)
ggplot(v, aes(x=Var1, y=Var2, fill=value)) +
geom_tile() +
scale_fill_gradient2(low = "#0000FF", mid = "#FFFFFF", high ="#FF0000",
midpoint = median(v$value), space = "rgb", guide = "colourbar")
在图例中,显示的最大值为175,但数据中的最大值为195。
> max(v)
[1] 195
那么如何在图例中的175顶部显示195?
答案 0 :(得分:1)
解决方案是根据最小值和最大值手动设置图例中断。例如
v <- melt(volcano)
ggplot(v, aes(x=Var1, y=Var2, fill=value)) +
geom_tile() +
scale_fill_gradient2(low = "#0000FF", mid = "#FFFFFF", high ="#FF0000",
midpoint = median(v$value), space = "rgb",
guide = "colourbar",
breaks=seq(min(v$value),max(v$value),
(max(v$value)-min(v$value))/4))
感谢@Vova和@Sameer Chavan领导。
编辑:
为了更清晰,请将ceiling
添加到seq
。
v <- melt(volcano)
ggplot(v, aes(x=Var1, y=Var2, fill=value)) +
geom_tile() +
scale_fill_gradient2(low = "#0000FF", mid = "#FFFFFF", high ="#FF0000",
midpoint = median(v$value), space = "rgb",
guide = "colourbar",
breaks=ceiling(seq(min(v$value),max(v$value),
(max(v$value)-min(v$value))/4)))
欢迎任何其他通用解决方案。
答案 1 :(得分:1)
我认为我可以基于“ scales”软件包中的基本“ pretty”和“ pretty_breaks()”提供替代答案。
根据上面的数据和示例进行构建...尝试使用如下所示的内容:
scale_fill_gradient2(low = "#0000FF", mid = "#FFFFFF", high ="#FF0000",
midpoint = median(v$value), space = "rgb",
guide = "colourbar",
limits = c(min(v$value), max(v$value)),
breaks=pretty_breaks(n=4)(min(v$value):max(v$value)))
您还可以将数值传递给pretty_breaks,以确定所需的中断次数。根据您的数据,您可能需要调整limits参数。