簡體   English   中英

ggplot 使用 reshape2 melt() 繪制多條折線圖 - 忽略圖表中的 NA/empty

[英]ggplot multiple line charts with reshape2 melt() - ignoring NA/empty in the chart

我正在嘗試使用 plot 進行里程碑趨勢分析 R。在某個時候,達到了一個里程碑,將不再報告。 這也是圖中的線應該停止的時候。 因此,我嘗試使用 ggplot 和 reshape2 來實現這一點,以便以長格式融化數據集:

#edit (代碼數據 model,抱歉)數據模型:數據模型“MTA_data”

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

結果:帶有 N/A 的 ggplot 圖表

好吧,由於某些里程碑在某個報告日期(達到里程碑)不再有計划日期,因此該值為 NA 或為空(無關緊要,問題仍然存在)。 有沒有辦法讓 ggplot 以這種方式忽略 NA/empty 以便線條將在此時停止?

預期結果:MTA圖表

謝謝你的幫助!

要不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.

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