matplotlib中的半小提琴情节
最近matplotlib添加了对的本机支持。我想做的是一半的小提琴情节。我想可以通过更改函数返回的matplotlib中的半小提琴情节,matplotlib,Matplotlib,最近matplotlib添加了对的本机支持。我想做的是一半的小提琴情节。我想可以通过更改函数返回的主体来完成。您知道如何使用matplotlib中的新函数绘制示例中的半小提琴图吗 data1 = (np.random.normal(0, 1, size=10000), np.random.normal(0, 2, size=10000)) data2 = (np.random.normal(1, 1, size=10000), np.random.normal(1, 2, size=10000)
主体
来完成。您知道如何使用matplotlib中的新函数绘制示例中的半小提琴图吗
data1 = (np.random.normal(0, 1, size=10000), np.random.normal(0, 2, size=10000))
data2 = (np.random.normal(1, 1, size=10000), np.random.normal(1, 2, size=10000))
fig, ax = plt.subplots(figsize=(18, 7))
v1 = ax.violinplot(data1, points=100, positions=np.arange(0, len(data1)),
showmeans=False, showextrema=False, showmedians=False)
for b in v1['bodies']:
# get the center
m = np.mean(b.get_paths()[0].vertices[:, 0])
# modify the paths to not go further right than the center
b.get_paths()[0].vertices[:, 0] = np.clip(b.get_paths()[0].vertices[:, 0], -np.inf, m)
b.set_color('r')
v2 = ax.violinplot(data2, points=100, positions=np.arange(0, len(data2)),
showmeans=False, showextrema=False, showmedians=False)
for b in v2['bodies']:
# get the center
m = np.mean(b.get_paths()[0].vertices[:, 0])
# modify the paths to not go further left than the center
b.get_paths()[0].vertices[:, 0] = np.clip(b.get_paths()[0].vertices[:, 0], m, np.inf)
b.set_color('b')
ax.legend([v1['bodies'][0],v2['bodies'][0]],['data1', 'data2'])
seaborn有成对的半小提琴,可能更容易从那里开始:评论中的斯坦福链接似乎已失效。@PhilB seaborn现在在pydata上有了文档页:如果有一些评论,可能会有所帮助。。。泰