r - ggplot图例为什么显示 “colour”参数?

标签 r ggplot2 legend

我有以下示例:

data <- structure(list(a = c(-1.25549186262767, -0.840855480786298, -
0.635371312524283, 
-0.602907981454667, -0.472166385166945, -0.285773634866154, 0.0701427664273268, 
0.138108224803923, 1.38435934347858, 1.71144087270237), b = c(-3.44400412039417, 
0.675644682353751, -1.04793816522475, -7.38303347186651, 2.34519166466874, 
0.334780748573386, 4.76806919070976, 4.8633533150074, 3.50106026731172, 
-1.27172351054143), c = c(-3.02376206439776, -2.56390769080574, 
-1.48659913867609, -1.27976202274701, -0.368725655874139, 1.08537150160227, 
3.98619381956471, 4.50687017428731, 4.10341582203292, -1.61769414438858
), d = c(5.71851494232005, 2.90539833491649, 2.75195159216204, 
2.73478241733301, 2.65941820902101, 2.60630235726839, 3.34836154776286, 
3.62938300664006, 4.61153521538016, 5.56230567213863), e = c(8.98703236551896, 
4.5660296657415, 4.32487774825464, 4.29789523068949, 4.17945528847841, 
4.09598014088541, 5.26217626511884, 5.70382046327322, 7.24733897758039, 
8.74153894964533)), .Names = c("a", "b", "c", "d", "e"), row.names = c(NA, 
-10L), class = "data.frame")

ggplot(data, aes(x=a, y=b)) + geom_point() + 
    geom_line(aes(x=a, y=c)) + 
    geom_line(aes(x=a, y=(c - d), colour="red")) +
    geom_line(aes(x=a, y=(c + d), colour="red")) +
    geom_line(aes(x=a, y=(c - e), colour="blue")) +
    geom_line(aes(x=a, y=(c + e), colour="blue")) 

我希望标签为“d”和“e”,但它们被赋予“颜色”字段的值。两个问题:

1)如何完全消除图例?
2)如果要包括图例,如何将其设置为特定值而不是颜色?

最佳答案

这里要记住的重要一点是aes()内的项目会将数据映射到美学。如果要设置一个恒定值,则可以将该信息移到aes()之外。稍微修改一下代码即可得出:

ggplot(data, aes(x=a, y=b)) + geom_point() + 
geom_line(aes(x=a, y=c)) + 
geom_line(aes(x=a, y=(c - d)), colour="red") +
geom_line(aes(x=a, y=(c + d)), colour="red") +
geom_line(aes(x=a, y=(c - e)), colour="blue") +
geom_line(aes(x=a, y=(c + e)), colour="blue") 

这给了您所追求的,没有任何传说。我喜欢@koshke的方法,其中包括上面的图例,因此不会重复。您可以采用的另一种方法是在对ggplot2()的调用之外执行数据操作,然后在绘图之前将melt()转换为长格式。这样可以缩短对ggplot()的调用,因为您可以摆脱对geom_line()的多次调用,但是显然存在预处理数据的开销。这个问题大概是六分之一,另一个是1/2打,但是对于将来的问题要牢记。

关于r - ggplot图例为什么显示 “colour”参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731867/

相关文章:

r - 将长文本换行到 kable 表列中

R ggplot2 用 2 个 hlines 和正确的图例绘制单个数据

r - 为条形图定义一个固定的宽度/高度,然后设置条形的绝对宽度和条形之间的绝对间距,以像素为单位

text - 是否可以设置标签相对于 gnuplot 中的键的位置?

R:选择子集而不复制

xml - 使用 getNodeSet 解析 XML - 识别缺失的标签

r - 在ggplot2中向图例添加线型

r - 在r中自动生成图表的图例?

r - 如何使用拆分制作不同的数据框

r - ggplot : how to plot heatmap regardless of the number of variables