簡體   English   中英

R 中的多個時間序列圖

[英]Multiple Timeseries graph in R

我正在嘗試創建一個多年來有多個數據的時間序列 plot。 我只想 plot 年份並讓數據從開始日期運行到結束日期。 在這里,我已將相應的列轉換為日期,然后將它們組合起來,但我沒有得到我正在尋找的結果。

數據可從本網站獲得: https://www.businessinsider.co.za/coronavirus-deaths-how-pandemic-compares-to-other-deadly-outbreaks-2020-4?r=US&IR=T

像這樣的數據不是在同一年開始或在同一年結束: https://ichef.bbci.co.uk/news/410/cpsprodpb/6E25/production/_111779182_optimised-mortality-nc.png

(時間段與造成的死亡人數)

library(lubridate)
library(ggplot2)
otherDiseaseData <- structure(list(ï..Disease = structure(c(11L, 2L, 12L, 6L, 3L, 
                                                            1L, 9L, 7L, 13L, 4L, 5L, 8L, 10L), .Label = c("Asian Flu", "blackdeath", 
                                                                                                          "Cholera", "Covid 19", "Ebola", "HIV", "Hong Kong Flu", "Mers", 
                                                                                                          "Russian Flu", "Sars", "smallpox", "spanish flu", "Swine Flu"
                                                            ), class = "factor"), Start = c(0L, 1347L, 1918L, 1981L, 1899L, 
                                                                                            1957L, 1889L, 1968L, 2009L, 2019L, 2014L, 2012L, 2002L), End = c(1979L, 
                                                                                                                                                             1351L, 1919L, 2020L, 1923L, 1958L, 1890L, 1970L, 2010L, 2020L, 
                                                                                                                                                             2016L, 2020L, 2003L), Death = c(300000L, 225000000L, 50000L, 
                                                                                                                                                                                             2360000L, 1500000L, 1100000L, 1000000L, 1000000L, 151700L, 101526L, 
                                                                                                                                                                                             11300L, 866L, 774L)), class = "data.frame", row.names = c(NA, 
                                                                                                                                                                                                                                                       -13L))


yrs <- otherDiseaseData$Start
    yr <- as.Date(as.character(yrs), format = "%Y")
    yStart <- year(yr)

    yrs <- otherDiseaseData$End
    yr <- as.Date(as.character(yrs), format = "%Y")
    yStart <- year(yr)

    otherDiseaseData$x <- paste(otherDiseaseData$Start,otherDiseaseData$End)
    otherDiseaseData
    ggplot(otherDiseaseData, aes(y = Death, x = otherDiseaseData$x),xlim=0000-2000) + geom_point()

我不確定我是否完全理解您的要求,但我的解釋是:

df <- reshape::melt(otherDiseaseData, measure.vars = c("Start", "End"))

ggplot(df %>% filter(Disease != "smallpox", Death != 225000000)) + 
  geom_line(aes(value,Death, colour = Disease), size = 2) + 
  theme_minimal() + 
  ggrepel::geom_label_repel(data = filter(df, Disease != "smallpox", Death != 225000000, variable != "Start"),
                                          aes(label = Disease, x = value, y = Death)) + 
  scale_y_log10() +
  theme(legend.position = "none", aspect.ratio = 1) + 
  ylab("Number of Deaths") + xlab("Year")

我已經使用reshape package 來重新組織給定的數據,然后ggrepel到 label 酒吧。 我不得不刪除一些數據,因為它真的拋出了規模,我最終將其制成對數以將數據分散一點。 它給了你這個 plot:

在此處輸入圖像描述

它並不完美,但它可能朝着正確的方向前進? 抱歉,如果我誤解了您的釣魚目的。

暫無
暫無

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

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