数组列表的小提琴图
Violin plot of a list of arrays
我有一些格式的数据:
[array([[0, 1, 2]], dtype=int64), array([[1, 2, 3]], dtype=int64)]
我的数据可以使用以下方法生成:
di_DFs = {}
groups = [1,2]
for grp in groups:
di_DFs[grp] = pd.DataFrame({'A' : [grp-1],
'B' : [grp],
'C' : [grp+1]})
data = []
for k in di_DFs:
data.append(di_DFs[k].iloc[[0]].values)
我可以绘制它:
for v in data:
plt.scatter(range(len(v[0])),v[0])
我想要一个带有 3 个垂直小提琴的小提琴图,我的点对在散点图中,请比较我的数组中的分布。我试过了:
for v in data:
plt.violinplot(v)
但是我得到了:
我相信你需要这样的东西:
for v in data:
plt.violinplot(v)
绘制此图:
由于示例数据集只有几个点,您不会看到太多分布,更像是平坦的 dashes/points。但是尝试使用更多的数据点,它将完成所需的工作。
我需要 re-format 我的数据:
df_Vi = pd.DataFrame({'Z' : data[0][0],
'Y' : data[1][0]}, index=range(len(data[0][0])))
plt.violinplot(df_Vi)
或者,使用更多数据的版本:
di_DFs = {}
groups = [1,2,0,7]
for grp in groups:
di_DFs[grp] = pd.DataFrame({'A' : [grp-1],
'B' : [grp],
'C' : [grp+1]})
data = []
for k in di_DFs:
data.append(di_DFs[k].iloc[[0]].values)
Indexes = range(len(groups))
df_Vi = pd.DataFrame()
for inD in Indexes:
df_Po = pd.DataFrame({inD : data[inD][0]},
index=range(len(data[0][0])))
df_Vi = pd.concat([df_Vi, df_Po], axis=1)
plt.violinplot(df_Vi)
我有一些格式的数据:
[array([[0, 1, 2]], dtype=int64), array([[1, 2, 3]], dtype=int64)]
我的数据可以使用以下方法生成:
di_DFs = {}
groups = [1,2]
for grp in groups:
di_DFs[grp] = pd.DataFrame({'A' : [grp-1],
'B' : [grp],
'C' : [grp+1]})
data = []
for k in di_DFs:
data.append(di_DFs[k].iloc[[0]].values)
我可以绘制它:
for v in data:
plt.scatter(range(len(v[0])),v[0])
我想要一个带有 3 个垂直小提琴的小提琴图,我的点对在散点图中,请比较我的数组中的分布。我试过了:
for v in data:
plt.violinplot(v)
但是我得到了:
我相信你需要这样的东西:
for v in data:
plt.violinplot(v)
绘制此图:
由于示例数据集只有几个点,您不会看到太多分布,更像是平坦的 dashes/points。但是尝试使用更多的数据点,它将完成所需的工作。
我需要 re-format 我的数据:
df_Vi = pd.DataFrame({'Z' : data[0][0],
'Y' : data[1][0]}, index=range(len(data[0][0])))
plt.violinplot(df_Vi)
或者,使用更多数据的版本:
di_DFs = {}
groups = [1,2,0,7]
for grp in groups:
di_DFs[grp] = pd.DataFrame({'A' : [grp-1],
'B' : [grp],
'C' : [grp+1]})
data = []
for k in di_DFs:
data.append(di_DFs[k].iloc[[0]].values)
Indexes = range(len(groups))
df_Vi = pd.DataFrame()
for inD in Indexes:
df_Po = pd.DataFrame({inD : data[inD][0]},
index=range(len(data[0][0])))
df_Vi = pd.concat([df_Vi, df_Po], axis=1)
plt.violinplot(df_Vi)