簡體   English   中英

圖例未顯示在R中

[英]legend not showing in R

我想使用ggplot2在R中繪制圖表,但要使用手動定義的圖例。 對於每個數據集,我都希望以相同的顏色繪制直線和點。 對於不同的數據集,點的顏色和形狀都必須不同,我希望將其反映在圖例中。 我現在所擁有的是以下內容(數據是隨機的,但格式與我的相同):

require(ggplot2)
x=runif(10,1,10)

y=runif(10,1,10)
df100final <- data.frame(x,y)
x=runif(10,1,10)
y=runif(10,1,10)
df80final <- data.frame(x,y)
x=runif(10,1,10)
y=runif(10,1,10)
df60final <- data.frame(x,y)

ggplot() +
  theme_bw() +
  stat_smooth(data=df100final, aes(x=x, y=y), se=FALSE) +
  geom_point(data=df100final, aes(x=x, y=y), shape=1) +
  stat_smooth(data=df80final, aes(x=x, y=y), se=FALSE) +
  geom_point(data=df80final, aes(x=x, y=y), shape=2) +
  stat_smooth(data=df60final, aes(x=x, y=y), se=FALSE) +
  geom_point(data=df60final, aes(x=x, y=y), shape=3) +
  scale_colour_manual(values=c("red","blue","green")) +
  theme(legend.position="top")

dev.off()

情節

如您所見,所有線和點都具有相同的顏色。 僅形狀不同,圖例被隱藏。

*編輯*如果我輸入:

stat_smooth(data=df100final, aes(x=x, y=y, color="red"), se=FALSE) +
geom_point(data=df100final, aes(x=x, y=y, color="red"), shape=1) +
stat_smooth(data=df80final, aes(x=x, y=y, color="blue"), se=FALSE) +
geom_point(data=df80final, aes(x=x, y=y, color="blue"), shape=2) +
stat_smooth(data=df60final, aes(x=x, y=y, color="green"), se=FALSE) +
geom_point(data=df60final, aes(x=x, y=y, color="green"), shape=3) +

然后我得到這個: 在此處輸入圖片說明

但后來我不知道如何編輯標簽,並且圖例中的符號都相同。

ggplot另一種方法是將數據收集到一個數據幀中,創建一個分組變量,然后將顏色映射到該分組變量:

df <- rbind(df100final, df80final, df60final)
df$grp <- as.factor(rep(c(100, 80, 60), c(nrow(df100final), nrow(df80final), nrow(df60final))))

ggplot(data = df, aes(x = x, y = y, colour = grp, shape = grp)) +
  stat_smooth(se = FALSE) +
  geom_point() +
  scale_colour_manual(values=c("red", "blue", "green")) +
  theme_bw()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM