多个性状 将多个性状画一张箱线图上R实战

示例数据

数据描述:
第一列是品种
其它列为观测值,y1,y2…

目的:
相对每一个性状做箱线图,同时显示在一个图上面,横坐标为性状。

> head(dd)
    Cul    y1    y2    y3 y4  y5  y6  y7  y8
1 80001 0.334 0.405 0.358 29 130 239 420 630
2 80002 0.348 0.393 0.365 24 107 242 410 600
3 80004 0.354 0.429 0.379 19  82 180 300 500
4 80005 0.335 0.408 0.363 46 168 301 510 700
5 80008 0.322 0.372 0.332 33 135 271 470 670
6 80026 0.359 0.450 0.392 30 132 258 390 570

效果图:

2. 操作方法

2.1 转化数据

使用data.table的melt函数,将数据进行转化:

re = melt(dd,id = 1)

数据类型:

  • 第一列为品种
  • 第二列为性状
  • 第三列为值。
> head(re)
    Cul variable value
1 80001       y1 0.334
2 80002       y1 0.348
3 80004       y1 0.354
4 80005       y1 0.335
5 80008       y1 0.322
6 80026       y1 0.359
2.2 作图
boxplot(value ~ variable,re)

效果:

3. 进阶

想要更好看的图,可以看看ggplot2的操作:

library(ggplot2)
ggplot(re, aes(x=variable, y=value, fill=variable)) + 
  geom_boxplot()

效果:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值