也许这是一个非常基本的问题,但我是一个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
提前谢谢你们
答案 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()
。