[英]Triple legend in ggplot2 with point shape, fill and color
我的数据框(请参见下面的链接)包含多个模型的输出,我希望根据这些输出对它们进行“分类”:
此外,还包括一个观测数据集,应以其自身的颜色和填充的形状显示出来。
因此,总的来说,我有9x2 = 18个点类型,每个点类型都有一个“域”标记,以及一个观察点类型。
以下是最简单的方法,它根本不起作用。 另外,我不想使用scale _ * _ manual为每个项目手动指定颜色和形状。
library(ggplot2)
#Sorry for the wget, I can't seem to make load() read the url directly
system("wget https://copy.com/LrEznd8QCmzVBNyz/df_pr_PDF_alps_044.Rdata?download=1")
load("df_pr_PDF_alps_044.Rdata?download=1") #This loads df
colnames(df) #Take a look at the columns
ggplot(data=df[which(df$PDF > 0),], aes(x=x, y=PDF)) +
geom_point(aes(shape=domain, colour=nativeresolution, fill=model), alpha=0.7, size=2)+
scale_shape_manual(values=c(21,22,23))
我尝试了一些修复程序,例如此处建议的那些修复程序:
但是我似乎找不到解决这个看似简单的问题的方法。
您可以使用override.aes
在填充和颜色指南中指定空心形状之一。 另外,如果您指定colour = NA
作为填充,您将在指南中得到“仅填充”。
library(ggplot2)
system("wget https://copy.com/LrEznd8QCmzVBNyz/df_pr_PDF_alps_044.Rdata?download=1")
load("df_pr_PDF_alps_044.Rdata?download=1")
ggplot(data=df[which(df$PDF > 0),],
aes(x = x, y = PDF, shape = domain, colour = nativeresolution, fill = model)) +
geom_point(alpha=0.7, size=2) +
scale_shape_manual(values=c(21,22,23)) +
guides(fill = guide_legend(override.aes = list(shape = 21, colour = NA)),
colour = guide_legend(override.aes = list(shape = 21)))
这可以修复图例,但要读取具有三个映射到点的变量的散点图可能并不容易...您是否考虑过使用分面?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.