如何在ggplot2中为图例添加自定义比例?

时间:2014-06-30 14:17:10

标签: r colors ggplot2 legend

我试图想象贝叶斯网络,并且由于线条的密度,我决定使用光度梯度来显示边缘的方向(暗 - >光)。但是,因此,我必须在geom_path()语句中手动定义颜色,并使用scale_fill_identity()而不是我通常使用的scale_fill_gradient()。我目前的图表如下所示:

enter image description here

我想要做的是添加一个从用户定义的值到蓝色到黄色的渐变比例,这样有人可以查看一个图例,并告诉所有链接的权重是什么(它们是' re所有无单位)。饱和度和亮度都与原始颜色不同,但色调相同。

编辑:以下是您可以使用的示例:

   ggplot(data.frame(x=1),aes(x=x,y=1,color='red',fill='blue'))+
scale_color_identity()+scale_fill_identity()+geom_bar(stat='identity')

如何在此处插入任意颜色渐变比例?

编辑2:我通过手动插入其他图表中的图例找到了一种迂回的方法:Control over legends of multiple layer plot in ggplot2

有没有更少的黑客方法吗?

1 个答案:

答案 0 :(得分:0)

要使用ggplot轻松添加图例,您需要一个映射。对于您的样本

ggplot(data.frame(x=1),aes(x=x,y=1,color="boxcol",fill=1))+
  scale_fill_gradient(name="Fill")+
  scale_colour_manual(name="Color",values=c(boxcol="blue"))+
  geom_bar(stat='identity')

会添加颜色和填充的图例。假设这个例子准确地表示了你实际在做什么,那么这应该有效。 geom_path中指定文字颜色值,而应对其进行编码。