在R的ggplot2中控制scale_colour_gradient中的tick限制和方向?

时间:2013-07-18 01:37:02

标签: r plot ggplot2

我正在使用带有scale_colour_gradient参数的limits=以及对日志比例的转换。我希望比例梯度完全在那些刻度中结束,并且刻度线面向外而不是向内。这可能吗?

例如:

ggplot(iris) + 
  geom_point(aes(x=Sepal.Width, y=Sepal.Length, colour=Sepal.Length)) + 
  scale_colour_gradient(limits=c(3,8), trans=log2_trans())

我希望刻度精确地从3开始(即没有显示值小于3的颜色)并且恰好在8处结束(显示没有高于8的值)并且刻度线向外(最好仅在右侧)比例的一侧,如this figure,但不是水平)。限制非常重要,因为在实际数据中,有时您会根据截止值剪切值,并且只想对该范围内的点进行着色,因此使用显示该范围之外的颜色的比例尺会很困惑(因为选择的点是仅在该范围内。)

1 个答案:

答案 0 :(得分:3)

我不知道(内置)选项以您描述的方式更改颜色条标记。但我认为这会影响你的其余部分:

ggplot(iris) + 
    geom_point(aes(x=Sepal.Width, y=Sepal.Length, colour=Sepal.Length)) + 
    scale_colour_gradient(limits=c(3,8),
                          breaks = round(seq(3,8,length.out = 4),1),
                          trans=log2_trans()) + 
    guides(colour = guide_colorbar(draw.ulim = FALSE,draw.llim = FALSE))

您可以使用ticks = FALSE完全删除刻度线。对于不同风格的刻度标记,您可能不得不破解网格代码本身。