首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在一个图中绘制多个方框图

如何在一个图中绘制多个方框图
EN

Stack Overflow用户
提问于 2018-04-09 22:39:02
回答 1查看 3.7K关注 0票数 0

我很难找到一个解决方案,在一个图中绘制多个盒子图,在R中绘制盒子图。

我有一个数据集,其中有48个地点的土壤湿度测量了5个日期。立地分为四类: A、C、M、P(每类12个)。

我将数据保存为一个6列的.csv文件。

第一列包含站点的类: A、C、M或P。

第二列到第六列包含度量(febr2017、mar2017、jun2017、sep2017和feb2018)。

我想要绘制这5个日期的土壤湿度的方格图与网站的班级。

到目前为止我的代码是:

代码语言:javascript
运行
复制
boxplot(feb2017~class, humidity, na.action=NULL, main="Soil humidity", xlab="Class", ylab="Humidity (%)", col=(c("yellowgreen")))

然而,这只显示了二月的土壤湿度与班级的对比。我尝试在其余的绘图中使用参数"add=TRUE“,但它显示了所有重叠的日期。

我的问题是:如何在一个图中显示其余的日期,并有一些躲闪的位置?

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-09 23:09:38

在这种情况下,tidyverse提供了一个很好的解决方案。

一些假数据:

代码语言:javascript
运行
复制
set.seed(111)
df1 <- data.frame(class = sample(c("A", "C", "M", "P"), 100, replace = TRUE),
                  feb2017 = sample(0:100, 100, replace = TRUE), 
                  mar2017 = sample(0:100, 100, replace = TRUE), 
                  jun2017 = sample(0:100, 100, replace = TRUE), 
                  sep2017 = sample(0:100, 100, replace = TRUE), 
                  feb2018 = sample(0:100, 100, replace = TRUE))

诀窍是将日期放到一个列中,将这些日期的值放到另一个列中。您还需要设置因子级别,以获得正确的日期顺序。

您可以通过面或颜色来指示站点类。如下所示,我认为颜色效果更好。

代码语言:javascript
运行
复制
library(tidyverse)
df1 %>% 
  gather(Date, Humidity, -class) %>% 
  mutate(Date = factor(Date, levels = c("feb2017", "mar2017", "jun2017",
                                        "sep2017", "feb2018"))) %>% 
  ggplot(aes(Date, Humidity)) + 
    geom_boxplot() + 
    facet_grid(~class)

代码语言:javascript
运行
复制
df1 %>% 
  gather(Date, Humidity, -class) %>% 
  mutate(Date = factor(Date, levels = c("feb2017", "mar2017", "jun2017",
                                        "sep2017", "feb2018"))) %>% 
  ggplot(aes(Date, Humidity)) + 
    geom_boxplot(aes(fill = class))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49742709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档