在ggplot中,使用像因子这样的数字变量来创建多个图,但是使用数字值来控制间距
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在ggplot中,使用像因子这样的数字变量来创建多个图,但是使用数字值来控制间距相关的知识,希望对你有一定的参考价值。
如果我制作这样的数据框:
d1 <- data.frame(class=rep(c("A", "B", "C"), each=100),
value=c(rnorm(100,0,1), rnorm(100,1,1), rnorm(100,2,1)))
我可以很容易地用每个班级的小提琴制作小提琴图:
ggplot(d1, aes(x=class, y=value)) + geom_violin()
但是如果我制作一个数据框并像这样用数字值绘制图形:
d2 <- data.frame(timepoint=rep(c(1, 2, 3.5), each=100),
value=c(rnorm(100,0,1), rnorm(100,1,1), rnorm(100,2,1)))
ggplot(d2, aes(x=timepoint, y=value)) + geom_violin()
我只得到一个小提琴图,如下所示:
我可以factor(timepoint)
:
ggplot(d2, aes(x=factor(timepoint), y=value)) + geom_violin()
但是我得到一个等间距的图。我想要的是第三个小提琴在右侧更远的图,因为它在时间= 3.5。即,间隔反映了timepoint
的实际值。
我意识到这不是小提琴图所特有的,它可以是箱线图或任何其他类型的图。有什么方法可以做我想要的吗?
答案
根据要求,
将group=timepoint
添加到您的美学组合中,例如:
ggplot(d2, aes(x=timepoint, y=value, group=timepoint)) + geom_violin()
以上是关于在ggplot中,使用像因子这样的数字变量来创建多个图,但是使用数字值来控制间距的主要内容,如果未能解决你的问题,请参考以下文章
ggplot 手动图例 scale_fill_manual 用于单独的颜色因子
R语言ggplot2可视化条形图(bar plot)配置因子变量的全局填充色方案这样不同数据集相同因子的填充色具有一致性(Fix colors to factor levels)
R语言ggplot2可视化多因子分组条形图使用position_dodge2函数配置所有的条形宽度相同不管分组是否只有一个因子