在 ggplot2-R 中编辑和格式化箱形图(删除时间序列图中的列和箱宽)

Posted

技术标签:

【中文标题】在 ggplot2-R 中编辑和格式化箱形图(删除时间序列图中的列和箱宽)【英文标题】:Editing and formatting box plot in ggplot2-R (removing columns and box width in time series plot) 【发布时间】:2021-10-31 08:01:10 【问题描述】:

如何从我的绘图中删除 NA 列(红色圆圈内)?另外,如何将 2021 年(蓝色圆圈内)的箱形图宽度固定为与前几年(2013 年至 2019 年)的大小相似?我的数据结构有 577 行和 27 列。虽然对于某些参数,我有“NA”值。然而,对于正磷酸盐(附图),我没有任何 NA 值。谢谢你。如下所示的R代码​​

p<-ggplot(df2, aes(x=Year, y=Ortho.P..µM,fill=factor(Season2))) +
  geom_boxplot()

p + labs(title = "clark", x = "Year", y = "Orthophosphate(µM), 
  Surface")+scale_fill_discrete(name = "Season")+
  theme(plot.title = element_text(hjust = 0.5))+
  theme(text=element_text(family="Times New Roman", face="bold", size=14))

【问题讨论】:

请与dput分享您的数据样本 @Vinícius Félix 当我将使用 dput 函数获得的数据结构复制并粘贴到堆栈溢出的“添加注释”中时,它显示“174 个字符太长” 试试xlim(NA, 2021),另见限制文档。 ggplot2.tidyverse.org/reference/lims.html 不要将dput 函数添加到添加 cmets 中,直接使用编辑问题按钮将其添加到您的问题中。 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

好的,因为我没有数据,我想这应该可行

固定箱线图的宽度

添加一个参数以保留函数geom_boxplot内的宽度

geom_boxplot(position = position_dodge(preserve = "single"))

删除 NA 列

ggplot 之前过滤Year 中的NA

filter(!is.na(Year))

最终解决方案

df2 %>% 
  filter(!is.na(Year)) %>% 
  ggplot(aes(x=Year, y=Ortho.P..µM,fill=factor(Season2))) +
  geom_boxplot(position = position_dodge(preserve = "single"))+
  labs(
    title = "clark",
    x = "Year",
    y = "Orthophosphate(µM), Surface")+
  scale_fill_discrete(name = "Season")+
  theme(plot.title = element_text(hjust = 0.5))+
  theme(text=element_text(family="Times New Roman", face="bold", size=14))

【讨论】:

以上是关于在 ggplot2-R 中编辑和格式化箱形图(删除时间序列图中的列和箱宽)的主要内容,如果未能解决你的问题,请参考以下文章

如何从箱形图数据中删除序列?

如何在箱形图dc.js中仅显示有限数量的记录

可视化神器Plotly玩转箱形图

winform BoxPolt 箱形图的画法

你如何改变熊猫箱形图Y轴的传播?

R数据可视化2:箱形图 Boxplot