3

我正在使用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 的值)并且刻度朝外(最好只在右侧比例,与此图相同,但不是水平的)。限制很重要,因为在实际数据中,有时您会根据截止值裁剪值,并且只想为该范围内的点着色,因此有一个显示范围外颜色的比例尺会令人困惑(因为点被选为仅在该范围内。)

4

1 回答 1

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。对于不同样式的刻度线,您可能不得不破解网格代码本身。

于 2013-07-18T02:00:55.060 回答