【发布时间】:2017-04-26 18:19:12
【问题描述】:
我有一个关于某个情节的问题。考虑我有以下data.frame:
data <- data.frame(a = c(44, 58, 60, 63, 65, 66, 67, 68, 69, 70),
b = c(38, 52, 55, 57, 59, 60, 61, 62, 63, 65),
c = c(51, 64, 66, 68, 70, 71, 71, 73, 74, 75),
d = c(44, 53, 54, 55, 56, 56, 58, 59, 59, 60),
e = c(44, 57, 59, 60, 62, 63, 64, 65, 66, 67),
x = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
rownames(data) = c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J')
我想用三种不同的线型“solid”、“dotdash”和“dash”绘制三个多边形 (x,a)、(x,d)、(x,e)。它们都应该出现在图例中。此外,我想用线型'dotted'绘制多边形(x,b),(x,c)并将它们之间的颜色涂成红色。只有红色区域应该显示在图例中,而不是虚线本身。为此,我编写了以下代码行:
data_no_legend = data[,c(2,3,6)]
data_legend = data[,c(1,4,5,6)]
data_melt_legend = melt(data_legend, id = "x")
data_melt_no_legend = melt(data_no_legend, id = "x")
p <- ggplot()
p <- p + geom_ribbon(data = data, aes(x = x, ymin = b, ymax = c,fill = 'legend'), alpha = 0.5, show.legend = TRUE, inherit.aes = FALSE)
p <- p + scale_fill_manual(labels = c("legend"), values = c('red'))
p <- p + geom_line(data = data_melt_legend, aes(x = x, y = value, size = variable, linetype= variable), color = 'gray', show.legend = TRUE, inherit.aes=FALSE)
p <- p + scale_linetype_manual(labels = c("legend 1","legend 2", "legend 3"),values = c("solid","dashed", "dotdash"))
p <- p + scale_size_manual(labels = c("legend 1","legend 2", "legend 3"),values = c(1,0.5,0.5))
p <- p + geom_line(data = data_melt_no_legend, aes(x = x, y = value, group= variable), color= 'gray', linetype = 'dotted', show.legend = FALSE, inherit.aes=FALSE)
p <- p + geom_point(data=data, aes(x = x, y = a), color = 'gray', size = 1.5,inherit.aes=FALSE)
不幸的是,我有两个不同的传说。一个用于线路,一个用于区域。谁能帮我吗?谢谢!
【问题讨论】:
-
我认为您在
x列中错过了 9。此外,data_melt_index和data_melt_no_index也无处可寻。你是指data_melt_legend和data_melt_no_legend吗? -
那么您的问题是关于删除“填充”图例,还是您想将它与线图例结合起来?在后一种情况下,您是希望它只添加第四个键,还是希望“图例 1”、“图例 2”和“图例 3”都具有颜色作为背景?
-
我想将它与线条图例结合起来,只需将彩色区域添加为第四个键。