Half violin
Recently matplotlib added built-in fiddle support . What I want to do is a half violin plot like here . I think it can be done with changing the function body
returned by the function. Do you know how to plot the plot of a violin scene like in the example, but using a new function from matplotlib?
+3
source to share
1 answer
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))
f, ax = plt.subplots(figsize=(18, 7))
v1 = ax.violinplot(data1, points=50, positions=np.arange(0, len(data1)), widths=0.85,
showmeans=False, showextrema=False, showmedians=False)
for b in v1['bodies']:
m = np.mean(b.get_paths()[0].vertices[:, 0])
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=50, positions=np.arange(0, len(data2)), widths=0.85,
showmeans=False, showextrema=False, showmedians=False)
for b in v2['bodies']:
m = np.mean(b.get_paths()[0].vertices[:, 0])
b.get_paths()[0].vertices[:, 0] = np.clip(b.get_paths()[0].vertices[:, 0], m, np.inf)
b.set_color('b')
+7
source to share