使用ggplot2制作箱图时出错

时间:2016-07-08 07:56:49

标签: r ggplot2 boxplot

我是使用ggplot2和R的新手。当我运行这个脚本时

var<-schz.[1,]
values<-schz.[,-1]
ggplot(data=schz., aes(var, values)) + geom_boxplot()

我收到了以下错误消息:

  

不知道如何自动为data.frame类型的对象选择比例。违约持续。   错误:美学必须是长度1或与数据(80)相同:x,y

数据集如下: [https://drive.google.com/file/d/0B7tO-O0lx79FZERvcHJUSmxNSTQ/view?usp=sharing]

有人可以告诉我出了什么问题?我理解它与ggplot2函数中x和y的定义有关,但我无法解决它!

2 个答案:

答案 0 :(得分:1)

您需要将data.frame更改为长格式,例如与dplyr::gather

schz. <- schz. %>% gather(type, value, -SITE)
ggplot(schz., aes(x=SITE, y=value, colour=type)) + geom_boxplot()

enter image description here

答案 1 :(得分:0)

您需要将数据重新整形为长格式而不是宽格式。我使用reshape2包中的融合功能,但您也可以使用tidyr包中的聚合。

尝试:

 library(reshape2)
 ggplot(data=melt(schz.), aes(variable, value)) + geom_boxplot()