【发布时间】:2016-11-13 11:57:15
【问题描述】:
我试图为我的 ggplot 生成一个图例,我想用 11 个数据点在 2.5 个月的时间范围内说明 5 条不同的线。我可以生成图表,但无法将图例与线条的颜色和名称进行比较。我尝试了不同的命令,即 scale_colour_manual、scale_fill_discrete、opts、guides,......但没有任何效果。我不知道出了什么问题.. 有人能帮帮我吗?
这里是定义数据框的命令。
Spaß <- read.csv(file="Spaßfaktor.csv", header = TRUE, sep = ";", dec=",")
SVS <- ts(Spaß$Sehr.Viel.Spaß, deltat=1/52)
VS <- ts(Viel.Spaß, deltat=1/52)
N <- ts(Normal, deltat=1/52)
WS <- ts(wenig.Spaß, deltat=1/52)
SWS <- ts(Sehr.wenig.Spaß, deltat=1/52)
ZP <- strptime(Spaß$Zeitpunkt, format="%d.%m.%Y")
ZP
df<-data.frame(ZP, SVS, VS, N, WS, SWS)
为了生成图表,我使用了以下命令(包括命令 scale_colour_manual)。包括此命令,R 不会创建图形。如果你从 ggplot 命令中删除它,图形会显示:
SP<-ggplot(df, aes(Zeit) ) +
geom_line(aes(y=SVS), colour="green", lwd=1.3) + # first layer
geom_line(aes(y=VS), colour="blue", lwd=1.3) +
geom_line(aes(y=N), colour="black", lwd=1.3) +
geom_line(aes(y=WS), colour="orange", lwd=1.3) +
geom_line(aes(y=SWS), colour="red", lwd=1.3) +
scale_colour_manual("",
breaks = c("Sehr viel Spaß", "Viel Spaß", "Normal", "Wenig Spaß", "Sehr wenig Spaß"),
values = c("green", "blue", "black", "Orange", "Red"))+
xlab("Zeit") +
scale_y_continuous("Anzahl in Prozent", limits = c(0,65)) +
labs(title="Häufigkeit der Auspräungen des Faktors Spaß")
SP
我还在最后尝试了命令 scale_fill_discrete 或 guide,方法是将其添加到 SP。这意味着即:SP + guides(fill = guide_legend(reverse=TRUE)) 或 SP + scale_fill_discrete(name="Legende", labels=c("Sehr viel Spaß", "Viel Spaß", "Normal", "Wenig Spaß", "Sehr wenig Spaß"))
有人可以帮帮我吗?
我自己通过调查生成的数据。它们如下所示:
Varaible Spaß Beurteilung
sehr viel Spaß/Sehr gut 4 5
Viel Spaß/Gut 8 6
Normal/Neutral 10 9
wenig Spaß/schlecht 3 4
sehr wenig Spaß/Sehr schlecht 3 4
【问题讨论】:
-
我认为你需要做一些数据重塑。一般来说,在ggplot中,如果你必须重复'geom_line'之类的命令,你就错了。