ggplot stat_bin2d图中的渐变中断

JD *_*ong 23 r ggplot2

stat_bin2dggplot2包中创建了一个2d直方图.我想控制颜色渐变中的断点数,以及这些断点所在的位置.我敢肯定我只是忽略了一些小事,但我无法弄清楚如何控制分档中的休息时间.

例:

x <- rnorm(100)^2
y <- rnorm(100)^2
df <- data.frame(x,y)
require(ggplot2)
p <- ggplot(df, aes(x, y)) 
p <- p + stat_bin2d(bins = 20)
p + scale_colour_gradient2(breaks=c(1,2,3,4,5,6))
Run Code Online (Sandbox Code Playgroud)

这会产生:

在此输入图像描述

c(5,10,15)尽管我徒劳地尝试休息,但这个情节只有3次休息c(1,2,3,4,5,6))

任何提示?

koh*_*ske 20

这里有一个例子合并cutbin2d:

p <- ggplot(df, aes(x, y, fill=cut(..count.., c(0,6,8,9,Inf))))
p <- p + stat_bin2d(bins = 20)
p + scale_fill_hue("count")
Run Code Online (Sandbox Code Playgroud)

由于有许多方法可以使休息任意,如果你明确定义你想要的,你可能会得到一个更好的答案.

在此输入图像描述


Cha*_*ase 13

我认为你可能想要较少谈论堂兄scale_colour_gradient2(),scale_fill_gradient2()

使用您的数据:

p + scale_fill_gradient2(breaks=c(1,2,3,4,5,6))
Run Code Online (Sandbox Code Playgroud)

另外要注意的可选参数low,mid以及high额外的控制.

在此输入图像描述

  • 图例中的颜色与绘图中使用的颜色不匹配. (5认同)
  • 断点就像轴刻度线.更改它们只会更改图例,它不会以任何方式修改比例. (2认同)
  • 另外我怀疑你真的想要渐变2给出没有自然中点. (2认同)