首页 > 解决方案 > 按日期绘制多个箱线图

问题描述

R新手并感谢建议!我试图在同一个图表上绘制多个箱线图,按日期分割。我的数据保存在 .csv 中,我现在正在尝试的代码如下。我怀疑我的 as.Date 函数不能正常工作。任何帮助深表感谢!数据位于“日”和“强度”的 csv 列中。例如,.csv 中的日期格式为 2021 年 5 月 1 日的“5/1/21”。

FG <- read.csv("/Users/L/Downloads/ResultsFG.csv", header=T, na.strings=c(""))

library(ggplot2)

FG$Day <- as.Date(FG$Day)
FG$Day <- format(FG$Day, "%b-%d")
FG$Day <- factor(FG$Day, levels=c("May-1","May-2","May-3", "May-4", "May-5", "May-6", "May-7", "May-87", "May-9", "May-10", "May-11", "May-14", "Mar-17", "May-18", "May-19", "May-20", "May-21", "May-22", "May-24", "May-25", "May-26", "May-27", "May-28", "May-29", "May-30", "May-31"))

ggplot() + 
geom_boxplot(data = FG, aes(x = factor(Day, level = d_order), y = Strength), color = "forestgreen", fill= "forestgreen", alpha = 0.1)

我没有收到任何错误消息,但我确实得到了一个在 X 轴上标记为“NA”的大箱线图。(下面的截图)你能帮我按日期拆分吗?

生成单个箱线图,X 轴 =“NA”

ETA:在尝试转换后调用 Day 列后出现奇怪的结果

> FG$Day
  [1] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
  [9] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [17] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [25] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [33] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [41] <NA>   <NA>   <NA>   <NA>   May-21 May-21 May-21 May-21
 [49] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [57] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [65] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [73] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [81] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [89] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
 [97] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>  
26 Levels: May-1 May-2 May-3 May-4 May-5 May-6 May-7 ... May-31

标签: rdateggplot2boxplot

解决方案


由于您没有提供示例数据,您可以试试这个。

library(gapminder)
library(ggplot2)

FG <- gapminder[1:444,]

FG$Day <- FG$year
FG$Day <- factor(FG$Day, levels=unique(FG$Day))
FG$Strength <- FG$lifeExp

ggplot(data = FG, aes(x = factor(Day), y = Strength, fill= "forestgreen", color="red")) + 
   geom_boxplot( alpha = 0.1) +
   scale_fill_manual(values="forestgreen") +
   scale_color_manual(values="red")

输出


推荐阅读