Julia中的小提琴图问题:无法为2个数据集使用相同的x位置

问题描述

我使用Julia版本1.4.2,并且想要绘制一个小提琴图,在这里我有两个数据集A和B,我希望使用相同的x-ticks进行绘制。我希望数据A是每个x位置的左半部分,B是右半部分。

这是一个测试示例:

using StatsPlots
A=[rand(10),rand(12),rand(44)]
B=A./2
X=[1,2,3]
StatsPlots.violin(A,xticks=X,side=:left)
StatsPlots.violin!(B,side=:right)

运行此命令时,数据A如我所愿被绘制,但数据B被移位。我想在x位置1处有A,在左边有B,以将它们相互比较。但是,我得到了一个图,其中B的数据位于x位置4-6(尽管没有标记的刻度):

violin plot

解决方法

我正在使用一种可行的解决方案,但这有点难看:

using StatsPlots
A=[rand(10),rand(12),rand(44)]
B=A./2
X=[[1],[2],[3]] #this is changed compared to my initial post

StatsPlots.violin(X[1],A[1],side=:left)
StatsPlots.violin!(X[1],B[1],side=:right)

for i=2:length(X)
    println(length(X))
    StatsPlots.violin!(X[i],A[i],side=:left)
    StatsPlots.violin!(X[i],B[i],side=:right)

end
current()

figure

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...