R 更改ggplot2中小提琴图的x位置
我试着用一个连续变量x来绘制小提琴图。我现在的x值是0,3,5,8。当我把它们画成小提琴时,它们之间的间隔是相等的。有没有办法强迫小提琴的位置基本上在0,3,5,8 我包含了一些示例数据和我基本上要运行的行R 更改ggplot2中小提琴图的x位置,r,ggplot2,violin-plot,R,Ggplot2,Violin Plot,我试着用一个连续变量x来绘制小提琴图。我现在的x值是0,3,5,8。当我把它们画成小提琴时,它们之间的间隔是相等的。有没有办法强迫小提琴的位置基本上在0,3,5,8 我包含了一些示例数据和我基本上要运行的行 condition movedur [1,] 5 0.935 [2,] 0 1.635 [3,] 3 0.905 [4,] 8 0.875 [5,] 3 1.060 [6
condition movedur
[1,] 5 0.935
[2,] 0 1.635
[3,] 3 0.905
[4,] 8 0.875
[5,] 3 1.060
[6,] 8 1.110
[7,] 3 1.830
[8,] 5 1.060
[9,] 5 1.385
[10,] 5 1.560
[11,] 0 1.335
[12,] 3 0.880
[13,] 0 1.030
[14,] 8 1.300
[15,] 3 1.230
[16,] 3 1.210
[17,] 5 1.710
[18,] 3 1.000
[19,] 0 1.365
[20,] 0 1.000
ggplot(a, aes(x = condition, y = movedur, fill = condition)) +
geom_violin()
当我运行完整的代码时,我得到下图。但x轴的间距是相等的,而不是由值隔开
这是因为小提琴图用于x轴上的分类数据,因此它只是将
条件
的不同值视为类别,而不是连续轴上的值。要获得所需结果,您可以使用complete
插入与其他轴值相对应的缺失值,如下所示。请注意,需要插入factor
调用以获取ggplot2
以使用离散填充
比例。
库(tidyverse)
待定%
完成(条件=0:8)%>%
ggplot()+
geom_小提琴(aes(x=条件,y=移动度,填充=因子(条件)))
#>警告:已删除包含非有限值(stat_ydensity)的5行。
由(v0.2.0)于2018-07-02创建。如果将
条件变量保留为x轴的整数/数字,但将其用作填充的因子,则可以获得所需的绘图
请注意,您给出的数据集示例已经将条件
作为一个整数,但如果它是一个因子,并且您希望将其转换,则可以这样做
a$condition=as.numeric(as.character(a$condition))
我在scale\u x\u continuous()
中添加了中断
,以使中断看起来很好
ggplot(a, aes(x = condition, y = movedur, fill = factor(condition))) +
geom_violin() +
scale_x_continuous(breaks = c(0, 3, 5, 8) )