r - ggplot2 的多个图例

标签 r ggplot2

我试图在同一个图上绘制多组数据。例如,在下面,我有两组实验设置:“P-0.1”和“P-0.2”,由因子 B 表示。对于每个实验,我有三个输出值“P”、“Q”、“O” ",如因子 A 所示。我按填充颜色对实验进行了分组,并按颜色、线型和形状对输出进行了分组。

library(ggplot2)

dat <- data.frame(
    A = factor(c("O", "O", "P", "P", "Q", "Q", "O", "O", "P", "P", "Q", "Q"), levels=c("O", "O", "P", "P", "Q", "Q","O", "O", "P", "P", "Q", "Q")),
    B = factor(c("P-0.1", "P-0.1", "P-0.1", "P-0.1","P-0.1", "P-0.1",  "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2"), levels = c("P-0.1", "P-0.1", "P-0.1", "P-0.1","P-0.1", "P-0.1",  "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2")),
    X = c( 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1),
    Y = c(10, 15, 12, 13, 9, 14, 30, 20, 32, 21, 27, 19)
)

p = ggplot(data=dat, aes(x=X, y=Y, colour=A, size=A, shape=A, linetype=A, fill=B, group=interaction(A,B))) + geom_point() + geom_line() + theme_bw()
p = p + geom_point(size=4, alpha=0) + geom_point(size=4, show.legend=FALSE) + guides(shape = guide_legend(nrow=3, byrow = TRUE, keywidth = 1.5, keyheight = 1), colour = guide_legend(override.aes = list(alpha=1)))

p = p + scale_shape_manual(name="", values=c(21,22,23))
p = p + scale_colour_manual(name="", values=c("#005ccc", "#007700", "#56B4E9"))
p = p + scale_linetype_manual(name="", values=c(0,0,1))
p = p + scale_size_manual(name="", values = c(1, 1, 1))
p = p + scale_fill_manual(name="", values = c("red", "blue"))

上面的代码正确地绘制了图形,但我在图例中得到了黑色圆圈作为填充比例,我期望填充红色和蓝色框。如何解决这个问题?

Reference Figure

最佳答案

正如评论中提到的,我更新了

p = p + scale_fill_manual(name = "", values = c("red", "blue"), guide = guide_legend(override.aes = list(shape = 22, size = 5)))



以获得所需的图像。看起来像:

enter image description here

关于r - ggplot2 的多个图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37905056/

相关文章:

r - 一个数的平方根到小数点后 100 位

r - 在 ggplot 中更改 stat_compare_mean() 输出的字体系列

r - 更改文本注释的背景颜色以增加对比度和可见性

r - 如何在散点图上的 stat_smooth 曲线下创建一个区域?

R如何使用断点指定自定义颜色渐变

r - 如何从R中同一列的两个观察值中获取差异

r - 计算 R 中具有特定名称模式的列的行平均值

r - NA和字符类型不能在R中混合?

r - 使用 dplyr filter_at() 函数选择有条件的行

r - 将 geom_point 和 geom_line 组合在一个图中