在ggplot2中,如何在使用两种图形类型时缩放图例?
问题描述:
我在+ geom_line()+ geom_point()中使用ggplot2。我制作了颜色/形状,但我无法适当缩放图例。如果我什么都不做,它很小,如果我放大它,颜色会阻止形状。在ggplot2中,如何在使用两种图形类型时缩放图例?
您可以看到形状和颜色都在传说,但形状由颜色绘制了过来。我想要在图例中绘制适当颜色的形状,但无法弄清楚如何去做。
我的阴谋被淹没如下:
ggplot(data=melted, aes(x=gene, y=value, colour=variable, shape=variable, group = variable, stroke=3, reorder(gene, value)))
+ theme_solarized()
+ scale_colour_solarized("blue")
+ geom_line()
+ geom_point()
+ theme(axis.text.x = element_text(angle = 90, hjust = 1), plot.title = element_text(size=16, face="bold"), legend.title=element_blank(), legend.text=element_text(size=20))
+ ggtitle('Signiture Profiles')
+ labs(x="Gene", y=expression(paste("Expression"), title="Expression"))
+ scale_colour_manual(name = "Virus/Time", labels = c("Mock", "ACali09_day1", "ACali09_day3", "ACali09_day8", "AShng113_day1", "AShng113_day3", "AShng113_day8", "AChkShng113_day1", "AChkShng113_day3", "AChkShng113_day8"), values = c("#ff420e","#89da59","#89da59","#89da59","#376467","#376467","#376467","#00293c","#00293c","#00293c"))
+ scale_shape_manual(name = "Virus/Time", labels = c("Mock", "ACali09_day1", "ACali09_day3", "ACali09_day8", "AShng113_day1", "AShng113_day3", "AShng113_day8", "AChkShng113_day1", "AChkShng113_day3", "AChkShng113_day8"), values = c(0,1,2,3,1,2,3,1,2,3))
+ guides(colour = guide_legend(override.aes = list(size=12)))
这里是要求一些示例数据:Example Data
预先感谢任何帮助,您可以提供。
答
你也许可以重新思考你是如何区分变量的。 你可以做如下的事情。请注意第一行中的更改,我已将variable
的组成部分分开,而不是通过scale
语句设置颜色和形状。 (我没有你的主题,所以我把它留下了)。
ggplot(data=melted, aes(x=gene,
y=value,
colour=gsub("_.*","",variable),
shape=gsub(".*_","",variable),
group = variable,
stroke=3,
reorder(gene, value))) +
geom_line() +
geom_point() +
theme(axis.text.x = element_text(angle = 90, hjust = 1),
plot.title = element_text(size=16, face="bold"),
legend.title=element_blank(),
legend.text=element_text(size=20)) +
ggtitle('Signiture Profiles') +
labs(x="Gene", y=expression(paste("Expression"), title="Expression")) +
guides(shape = guide_legend(override.aes = list(size=5)),
colour = guide_legend(override.aes = list(size=5)))
+0
谢谢,这是对情节的一大改进。 –
你可以添加一个例子的数据集,以你的问题,我们可以使用? – aosmith
试试:'guides(shape = guide_legend(override.aes = list(size = 12)))''而不是'guides(color = guide_legend(override.aes = list(size = 12)))' – Mosquite
@Mosquite好主意不幸的是它没有改变任何东西。 :( –