QQ登录

只需一步,快速开始

使用微信账号登录

查看: 1878|回复: 1

ggplot函数制作箱线图及其美化

  [复制链接]

该用户从未签到

5

主题

15

帖子

43

积分

新手上路

Rank: 1

积分
43
发表于 2017-9-11 21:01:51 | 显示全部楼层 |阅读模式
生信自学课堂
R语言中利用ggplot函数制作箱线图及其美化。
箱线图也是经常会用到的用于呈现数据分布形态的重要的图表类型。
还是以ggplot2包内置的数据集为例进行案例演示:
ggplot(mpg,aes(class,displ))+geom_boxplot()
以上是最简单的形式,一个分类变量,一个连续性数值型;我们通过添加分类变量,让箱线图能够呈现更多的数据信息。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()
接下来我们还像往常一样,通过position参数的切换来验证boxplot图表的position参数使用规则:
ggplot(diamonds,aes(cut,price,fill=color,alpha=1/30))+geom_boxplot(position="identity")
#当将位置设置为不做任何变换时,分类后的箱线图会在对应的X轴分类项相互叠加,造成遮挡阅读不便,不推荐此参数。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot(position="stack")
根据经验我们就可以猜到,估计使用堆积方式来呈现多维箱线图肯定会失败,因为即便真的将分类箱线图堆积起来,那么其呈现数据分布形态的功能也就丧失殆尽,果然软件是报错的。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot(position="dodge")


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

该用户从未签到

5

主题

15

帖子

43

积分

新手上路

Rank: 1

积分
43
 楼主| 发表于 2017-9-11 21:04:37 | 显示全部楼层
生信自学课堂
果然在添加有多分类变量时,箱线图默认使用的position参数是dodge。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot(position="fill")

同样将position参数设定为堆积百分比也毫无意义,软件没有通过并提出警示。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+facet_grid(.~color)
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+facet_wrap(~color)
仔细体会两种分面函数效果的差异:


箱线图美化:
簇状:
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+ggtitle("Box Plot")+theme_wsj()+scale_fill_wsj()+guides(fill=guide_legend(title=NULL))
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+ggtitle("Box Plot")+theme_economist()+scale_fill_economist()+guides(fill=guide_legend(title=NULL))

分面:

ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+ggtitle("Box Plot")+theme_wsj()+scale_fill_wsj()+guides(fill=guide_legend(title=NULL))+ facet_grid(.~color)
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+ggtitle("Box Plot")+theme_economist()+scale_fill_economist()+guides(fill=guide_legend(title=NULL))+facet_grid(.~color)  



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服热线
18520221056(微信) 周一至周日:09:00 - 22:00
公司官网:http://www.biowolf.cn

速科生物是一家融生信创新、设计、技术开发、服务为核心的生物公司,生信自学网专注于生信培训周边课程开发和代码设计,坚持为客户打造高品质的精品课程和培训服务。

Powered by 生信自学网 © 2016-2019 江西速科生物

QQ|生信自学论坛 ( 赣ICP备19001400号-1 )

GMT+8, 2019-5-20 08:22 , Processed in 0.173677 second(s), 25 queries .

快速回复 返回顶部 返回列表