繁体   English   中英

ggplot2图例颜色渐变调整

[英]ggplot2 legend color gradient adjustment

在下面的代码中,我想更改图例的各个方面,以便用“ plot_size”表示“ log10_p_value”的颜色渐变。

在此处输入图片说明

因此,代表“ plot_size”的白色气泡也代表“ log10_size”的颜色

数据可以在这里加载:

one.data <-
  structure(list(plot_X = c(5.902, 1.184, 5.354, -3.513, 2.183, 
                            2.217, -4.548, 6.466, -7.38, -6.19,
                            -6.374, 2.294, -3.653),
                 plot_Y = c(3.903, 7.13, -3.64, -5.64, 1.534, -4.031,
                            5.709, 0.066, 0.531, -3.234, 2.502, 6.686, 6.26),
                 plot_size = c(7.284, 5.413, 7.612, 4.725,5.633, 5.232,
                               4.547, 6.474, 5.567, 6.277, 6.874, 5.277, 4.394),
                 log10_p_value = c(-2.5229, -2.1549, -1.4949, -3, -1.5376,
                                   -1.3565, -2.5229, -1.5229, -1.4949, -2.1549,
                                   -1.3665, -2.1549, -1.3565)),
            row.names = c(NA, 13L),
            class = "data.frame",
            .Names = c("plot_X", "plot_Y", "plot_size", "log10_p_value"))

生成图的代码是:

p1 <-
  ggplot(one.data
         , aes( plot_X
                , plot_Y
                , fill = log10_p_value
                , size = plot_size)) +
  geom_point(
    alpha = 0.6
    , shape = 21) +
  scale_size( range=c(0, 30)) +
  scale_fill_gradientn( colours = c("blue", "green", "yellow", "red")) +
  theme_bw() +
  coord_cartesian(xlim = range(one.data$plot_X) + diff(range(one.data$plot_X))*c(-0.1, 0.1)
                  , ylim = range(one.data$plot_Y) + diff(range(one.data$plot_Y))*c(-0.1, 0.1))


p1

您是否只是想使用色标中的颜色来更改plot_size图例中的plot_size

如果是这样,它将起作用:

p1 + guides(size = guide_legend(override.aes = list(fill = "orange", alpha = 0.6)))

产生这个

在此处输入图片说明

这只是克服了该图例的默认美学(通常是“安全”值,以避免与其他美学混淆)。

您可能会让它们分别使用不同的颜色,但这是一个非常非常糟糕的主意,因为该颜色与所需的打印尺寸不对应:

p1 + guides(size = guide_legend(override.aes = list(fill = c("blue", "green", "red"), alpha = 0.6)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM