我有600個回覆者的數據集。我在5年 - 2013年,2014年,2015年,2016年和2017年對600名受訪者中的每一位都有一些指標值。另外,我還爲每位受訪者設置了城市專欄。我想創建一個情節 - 在這裏我使用線圖爲600名受訪者中的每一個繪製指標 - 每個受訪者一個線形圖,使得Y軸具有指標值,X軸具有數年。我已將城市線圖的顏色分開。此外,我想增加一個單獨的中位數指標線,以便每個城市的受訪者都有一條中線。我能夠創建一個綜合中值線,但如果我嘗試繪製多箇中值,則會出現錯誤。這裏是我使用的代碼 -在面板數據的單個繪圖中繪製多箇中間值
library(ggplot2)
library(dplyr)
library(tidyr)
library(magrittr)
sample_no <- c(1:600)
city <- c(rep("A",150), rep("B",250), rep("C", 200))
indicator_2013 <- runif(600, min=0, max=1000)
indicator_2014 <- runif(600, min=0, max=1000)
indicator_2015 <- runif(600, min=0, max=1000)
indicator_2016 <- runif(600, min=0, max=1000)
indicator_2017 <- runif(600, min=0, max=1000)
df <- data.frame(sample_no, city, indicator_2013, indicator_2014, indicator_2015, indicator_2016, indicator_2017)
df1 <- df %>%
gather(indicator_2013, indicator_2014, indicator_2015, indicator_2016, indicator_2017, key="Year", value = "Indicator")
df1 %>%
ggplot(aes(x=Year, y=Indicator, color=as.factor(city))) +
geom_line(aes(group = sample_no), alpha = .5, size = 0.7) +
labs(col = "City") +
stat_summary(aes(y = Indicator, group =1), fun.y=median, geom = "line", color = "black", size = 1)
注意:這僅僅是虛擬數據,以便圖形是對稱的...... 我使用下面的代碼進行多中線嘗試,但我得到的錯誤 - 錯誤:美學必須是長度爲1或相同的數據(5):顏色,大小
stat_summary(aes(y = Indicator, group =1), fun.y=median, colour=city, geom="line", size =1)
我環顧四周,文檔和其它的R博客文章,但沒有找到有用的東西。
非常感謝!我有兩個後續問題 - 1. stat_summary中的group有哪些不同的值?什麼時候使用1?我擡頭看了一下?stat_summary,但那並不多。 2.在使用此代碼生成的圖形中,很多繪圖空間在座標(0,0)和第一個x-asix刻度標籤之間被浪費,類似於最後一個x-asis刻度標籤和圖形結束處的位置。這怎麼能減少?也許這應該是另一篇文章,但我查了很多ggplot文檔,但沒有找到任何東西。 – user3816784
group = 1表示你想要連接所有點的單行 –
我已經在主要答案 –