R 图例未出现在ggplot2条形图上

R 图例未出现在ggplot2条形图上,r,graph,plot,ggplot2,R,Graph,Plot,Ggplot2,鉴于这些数据 > vec2df vec2 sd 1 9 0.5 2 7 0.2 3 8 0.3 4 9 1.0 和代码 ggplot(vec2df, aes(seq_along(vec2), vec2)) + geom_bar(stat = "identity", fill = c("red","blue","green","yellow")) + geom_errorbar(aes(ymin = vec2 -

鉴于这些数据

> vec2df
   vec2  sd
1    9  0.5
2    7  0.2
3    8  0.3
4    9  1.0
和代码

ggplot(vec2df,
       aes(seq_along(vec2), vec2)) + 
  geom_bar(stat = "identity",
       fill = c("red","blue","green","yellow")) +
  geom_errorbar(aes(ymin = vec2 - sd, ymax = vec2 + sd), 
                width = .2, position = position_dodge(.9), 
                legendPosition="top")

由于某种原因,传说没有出现。有人能告诉我怎么让它出现吗

因为您没有将某些变量映射到美学,所以它不会创建图例。另外,尝试将
x
变量设置为一个因子,这样它可以将离散的条映射为离散的颜色,而不是渐变。例如:

# Read data
vec2df <- read.table(textConnection("vec2  sd
1    9  0.5
2    7  0.2
3    8  0.3
4    9  1.0"))

# Plot
ggplot(vec2df,aes(x=as.factor(seq_along(vec2)), y=vec2)) + 
  geom_bar(aes(fill=as.factor(seq_along(vec2))), stat='identity') +
  scale_fill_manual(values=c("red","blue","green","yellow"))
#读取数据

vec2df我想你需要的是
legend.position
而不是
legendPosition
谢谢,假设我有超过4条。可能有12条和3条是红色、3条蓝色等等。我如何保持图例的原样,而不是扩展成12条?您必须将一个变量映射到每种颜色上。例如,如果在
vec2df
中有一个名为
group
的列,对于所有红色条,它是
group1
,对于所有蓝色条,它是
group2
,那么在
geom\u条
函数中,您可以说
aes(group=fill)
。然后,图例会将
group1
group2
作为标签。