[英]ggplot multiple line charts with reshape2 melt() - ignoring NA/empty in the chart
我正在嘗試使用 plot 進行里程碑趨勢分析 R。在某個時候,達到了一個里程碑,將不再報告。 這也是圖中的線應該停止的時候。 因此,我嘗試使用 ggplot 和 reshape2 來實現這一點,以便以長格式融化數據集:
#edit (代碼數據 model,抱歉)數據模型:
MTA_data<- data.frame(ReportingDates = c("01.01.2021", "01.02.2021",
"01.03.2021", "01.04.2021", "01.05.2021", "01.06.2021", "01.07.2021",
"01.08.2021", "01.09.2021", "01.10.2021", "01.11.2021", "01.12.2021"),
Milestone1 = c("01.02.2021", "01.03.2021", NA, NA, NA, NA,NA, NA, NA, NA, NA, NA),
Milestone2 = c("01.06.2021", "01.06.2021","01.06.2021", "01.06.2021", "01.07.2021",
"01.07.2021", NA, NA,NA, NA, NA, NA),
Milestone3 = c("01.09.2021", "01.09.2021", "01.09.2021", "01.09.2021", "01.09.2021",
"01.09.2021", "01.09.2021", "01.11.2021", "01.11.2021", "01.11.2021",
"01.11.2021", NA),
MilestoneDates = c("01.01.2021","01.02.2021", "01.03.2021", "01.04.2021", "01.05.2021", "01.06.2021",
"01.07.2021", "01.08.2021", "01.09.2021", "01.10.2021", "01.11.2021","01.12.2021"))
dput(MTA_data)
#meld 和 plot 的代碼:
MTA_data.long <-melt(MTA_data,id.vars = "ReportingDates")
x <- ggplot(MTA_data.long, aes(ReportingDates,value,color=variable))+
geom_line(data=MTA_data.long, aes(x=ReportingDates, y=value, group=variable))+
geom_point()
x
結果:
好吧,由於某些里程碑在某個報告日期(達到里程碑)不再有計划日期,因此該值為 NA 或為空(無關緊要,問題仍然存在)。 有沒有辦法讓 ggplot 以這種方式忽略 NA/empty 以便線條將在此時停止?
預期結果:
謝謝你的幫助!
要不melt
NA
值,請在melt()
function 中設置na.rm = TRUE
。
MTA_data.long <-melt(MTA_data,id.vars = "ReportingDates", na.rm = TRUE)
x <- ggplot(MTA_data.long, aes(ReportingDates, value, color = variable)) +
geom_line(aes(group = variable)) +
geom_point()
作為旁注,您不需要重新指定ggplot()
中設置的數據和美學。 它們將被后續層繼承。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.