2016-11-28 162 views
0

我试图覆盖一组箱形图在酒吧使用matplotlib中单独的y轴。我无法在任何地方找到示例,并尝试使用ax.set_zorder()和ax2.set_alpha()所能想到的一切。有没有一种方法可以从箱形图中设置背景不透明? ax.patch.set_facecolor('None')完全消除的背景...酒吧matplotlib/python

这是我已经试过:

import matplotlib.pyplot as plt 
import numpy as np 

example_data = [1,2,1],[1,2,2,2],[3,2,1] 

data = [i for i in example_data] 

data_len = [len(i) for i in example_data] 

labels = ['one','two','three'] 

plt.figure() 

fig, ax = plt.subplots() 

plt.boxplot(data) 

ax.set_xticklabels(labels,rotation='vertical') 


ax2 = ax.twinx() 

ax2.bar(ax.get_xticks(),data_len,color='yellow', align='center') 

ax2.set_zorder(1) 

ax.set_zorder(2) 

ax2.set_alpha(0.1) 

ax.patch.set_facecolor('None') 

plt.show() 

在此先感谢您的帮助。

回答

1

只要改变图的顺序,以便在条形图之后显示盒图即可?例如:

import matplotlib.pyplot as plt 
import numpy as np 

example_data = [[1,2,1], [1,2,2,2], [3,2,1]] 
data_len = [len(i) for i in example_data] 
labels = ['one','two','three'] 

fig, ax = plt.subplots() 
ax.bar(range(1, len(data_len)+1), data_len, color='yellow', align='center') 
ax2 = ax.twinx() 
ax2.boxplot(example_data) 
ax2.set_ylim(ax.get_ylim()) 
ax.set_xticklabels(labels, rotation='vertical') 
plt.show() 

这将使你:

bar and box plot

+0

不错!谢谢,应该想到这一点。 –