如果我有样本数据并使用ggplot2 geom_segment绘制它:
library(ggplot2)
df1 <- data.frame(p=c(1,2), f=c("A","B"))
df2 <- data.frame(p=c(3,4), f=c("C","D"))
ggplot() +
geom_segment(data=df1, mapping=aes(x=p-0.5, xend=p+0.5, y=1, yend=1, color=f)) +
geom_segment(data=df2, mapping=aes(x=p-0.5, xend=p+0.5, y=1, yend=1, color=f))
结果数字将为:
我无法理解为什么两个单独的geom_segment()图层共享同一个图例?这种行为背后的逻辑是什么?
如何手动设置线条的颜色&#34; A&#34;并且&#34; B&#34;? 我试图使用以下命令更改它们:
ggplot() +
geom_segment(data=df1, mapping=aes(x=p-0.5, xend=p+0.5, y=1, yend=1, color=f)) +
scale_color_manual(values=c("A"="red", "B"="blue")) +
geom_segment(data=df2, mapping=aes(x=p-0.5, xend=p+0.5, y=1, yend=1, color=f))
但会显示错误消息:
错误:手动刻度值不足。 4需要但只有2 提供。
非常感谢你
答案 0 :(得分:1)
您可以使用scale_color_manual:
手动设置所有细分的颜色ggplot() + geom_segment(data = df1,mapping = aes(x=p-0.5,xend = p + 0.5, y = 1,yend = 1, color=f)) +
geom_segment(data = df2,mapping = aes(x=p-0.5,xend = p + 0.5, y = 1,yend = 1,color = f))+
scale_color_manual(values=c("B"="blue", "A"="green", "D"="red","C"="yellow"))