目的是在 r 中繪制歷史情節。使用以下資料
date new_cases
1 22/01/2020 NA
2 23/01/2020 0
3 24/01/2020 1
4 25/01/2020 0
5 26/01/2020 3
6 27/01/2020 0
7 28/01/2020 0
8 29/01/2020 1
9 30/01/2020 0
10 31/01/2020 2
... etc.
我從來沒有像這樣繪制過,我唯一知道的是使用
plot(data$new_cases)
但肯定有一種更美觀的方式來做到這一點嗎?謝謝
uj5u.com熱心網友回復:
在基礎 R 中,您可以date使用as.Date. 然后,您可以繪制和標記您的圖表。
df$date <- as.Date(df$date, "%d/%m/%Y")
plot(new_cases ~ date, df, xaxt = "n", type = "l")
axis(1, df$date, format(df$date, "%d/%m/%Y"), cex.axis = .7)

另一種選擇是使用tidyverse并轉換日期,然后通過管道輸入ggplot2:
library(tidyverse)
df %>%
mutate(date = as.Date(date, format = "%d/%m/%Y")) %>%
ggplot(aes(date,new_cases))
geom_line()

或者,如果您只想要積分,那么您可以按照@Dave2e 的建議進行操作:
df$date <- as.Date(df$date, "%d/%m/%Y")
plot(x=df$date, y=df$new_cases)

uj5u.com熱心網友回復:
為了完整起見,對于date變數來說,這是一個糟糕且潛在危險的名稱,我的結果是date與基礎和lubridate函式相對應的命名空間沖突。使用此資料時,我建議您將列重命名為case_date或等效。
另一方面,如果您正在使用,tidyverse您可能想要探索lubridate,它是tidyverse.
# pasted_data <- read.delim(pipe("pbpaste"))
library("tidyverse")
library("tidyr")
library("lubridate")
pasted_data %>%
separate(
col = 1,
sep = "\\s ",
into = c("col_ind", "case_date", "cases"),
convert = TRUE
) %>%
mutate(case_date = dmy(case_date)) %>%
ggplot(aes(x = case_date, y = cases))
geom_line()
對于后代,以可用格式粘貼的 ff 資料應分成不同的列。而在tidyverse,這可以通過使用來實作tidy::separate。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/427677.html
