我一直在使用 ggplot 在 R 中繪制一個圖,并在 x 軸上繪制日期。我注意到 R 不將它們識別為日期,因此 x 軸上的順序是錯誤的。我嘗試了許多不同的方法,例如使用 as.Date()、手動編輯關卡和對 x 軸進行排序,但沒有任何效果。這是我的代碼:
library(dplyr)
library(ggplot2)
library(hrbrthemes)
calories_data = read.csv('dailyCalories_clean.csv',header = TRUE, sep=",")
ggplot(calories_data, aes(x= ActivityDay, y=Calories, group=Id, color = Id))
geom_line()
這是情節
感謝您的幫助,我對此很陌生,并且已經研究了幾個小時但沒有成功。謝謝!
uj5u.com熱心網友回復:
解決您的問題的一種選擇是將您的日期轉換為正確的日期以修復順序并使用date_labels引數scale_x_date來格式化您的日期。要轉換為日期,您必須在您的 中添加一個假年份ActivityDay,例如"2022":
使用一些虛假的隨機資料來模仿你的真實資料:
library(ggplot2)
set.seed(123)
calories_data <- data.frame(
ActivityDay <- rep(c("4/1", "4/10", "5/11", "5/1"), 3),
Id = rep(1:3, each = 4),
Calories = runif(12, 1000, 3000)
)
calories_data$ActivityDay <- as.Date(paste("2022", calories_data$ActivityDay, sep = "/"), format = "%Y/%m/%d")
ggplot(calories_data, aes(x= ActivityDay, y=Calories, group=Id, color = Id))
geom_line()
scale_x_date(date_breaks = "5 day", date_labels = "%m/%d")

uj5u.com熱心網友回復:
要從中獲取正確的日期as.Date,您可以在下面將年份放在首位。從您的繪圖影像中,看起來日期是以月/日字符格式輸入的。
library(tidyverse)
calories_data <- tribble(
~ActivityDay, ~Calories, ~Id,
"5/1", 10, 1,
"5/2", 20, 1,
"5/10", 15, 2,
"5/11", 30, 2
)
calories_data |>
mutate(ActivityDay = str_c("2022/", ActivityDay),
ActivityDay = as.Date(ActivityDay)) |>
ggplot(aes(ActivityDay, Calories, group = Id, color = Id))
geom_line()

由reprex 包于 2022-06-23 創建(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/495177.html
下一篇:帶有資料標簽的多行(R)
