前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将多个性状画一张箱线图上R实战

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

作者头像
邓飞
发布2019-11-19 16:14:00
8160
发布2019-11-19 16:14:00
举报

一个小栗子。

1. 示例数据

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

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

代码语言:javascript
复制
> 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函数,将数据进行转化:

代码语言:javascript
复制
re = melt(dd,id = 1)

数据类型:

  • 第一列为品种
  • 第二列为性状
  • 第三列为值。
代码语言:javascript
复制
> 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 作图
代码语言:javascript
复制
boxplot(value ~ variable,re)

效果:

3. 进阶

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

代码语言:javascript
复制
library(ggplot2)
ggplot(re, aes(x=variable, y=value, fill=variable)) + 
  geom_boxplot()

效果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 育种数据分析之放飞自我 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 示例数据
  • 2. 操作方法
    • 2.1 转化数据
      • 2.2 作图
      • 3. 进阶
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档