2016-11-28 158 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

不錯!謝謝,應該想到這一點。 –