ggplot更改填充颜色而不会丢失颜色渐变

时间:2014-11-14 17:03:06

标签: r ggplot2

也许这是一个非常基本的问题,但我是一个ggplot和R初学者。

我使用此命令获取条形图:

ggplot(data=melt, aes(x=variable, y=value, fill=value)) +
  geom_bar(width=.8, stat="identity") +
  xlab("Samples") + ylab("Expression") + ggtitle("Gapdh") + 
  theme(plot.title=element_text(face="bold", size=12)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1, size=10)) +
  theme(axis.text.y = element_text(size=10))

我想更改条形图的颜色,但要根据值列保持颜色的渐变。我试过这个但是我失去了渐变:

ggplot(data=melt, aes(x=variable, y=value, fill=value)) + 
  geom_bar(width=.8, stat="identity", fill="red") +
  xlab("Samples") + ylab("Expression") + ggtitle("Gapdh") + 
  theme(plot.title=element_text(face="bold", size=12)) + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1, size=10)) + 
  theme(axis.text.y = element_text(size=10))

数据很简单,只有两列(变量 - 值):

variable    value
1   nu73    13576.49
2   nu73t   10891.88
3   nu81    12673.33
4   nu81t   12159.91
5   nu83    12570.82
6   nu83t   11828.04

提前谢谢你们

1 个答案:

答案 0 :(得分:1)

您想要调整比例,特别是填充颜色的连续比例,因此函数scale_fill_continuous()

ggplot(data = melt, aes(x = variable, y = value, fill = value)) +
    geom_bar(width = .8, stat = "identity") +
    labs(x = "Samples", y = "Expression", title = "Gapdh") + 
    theme(plot.title = element_text(face = "bold", size = 12),
          axis.text.x = element_text(angle = 45, hjust = 1, size = 10),
          axis.text.y = element_text(size = 10)) +
    scale_fill_continuous(low = "firebrick4", high = "firebrick1")

(我略微修改了您的绘图代码:您可以使用多个参数调用theme一次,并且我发现labs比一堆单独的标记调用更好。)

另一个选择是使用RColorBrewer包中的调色板(它们包含在ggplot2中)。 scale_fill_brewer()比例如果是离散色标,您可以使用scale_fill_distiller()将它们“提取”为连续比例。例如

scale_fill_distiller(type = "seq", palette = "Reds")

要查看所有可用的比例,请运行RColorBrewer::display.brewer.all()