2016-06-07 352 views
3

我有更新的雙軸問題。 在下面的代碼中,我期望ax_hist.clear()完全清除數據,刻度和軸標籤。但是當我在同一個座標軸上再次繪圖時,以前的ax_hist.hist()中的第二個y軸標籤仍然存在。 如何刪除舊的y軸標籤?雙軸的matplotlib axes.clear()不會清除第二個y軸標籤

我用TkAgg和Qt5Agg進行了測試,得到了相同的結果。

import matplotlib.pyplot as plt 
import numpy as np 

fig, ax = plt.subplots() 

d1 = np.random.random(100) 
d2 = np.random.random(1000) 

ax.plot(d1) 
ax_hist = ax.twinx() 
ax_hist.hist(d1) 

ax.clear() 
ax_hist.clear() 
ax.plot(d2) 
ax_hist = ax.twinx() 
ax_hist.hist(d2) 
plt.show() 

回答

1

問題是由其中創建第一ax雙軸線的第二ax_hist = ax.twinx()引起的。您只需創建一次雙軸。

import matplotlib.pyplot as plt 
import numpy as np 

fig, ax = plt.subplots() 

d1 = np.random.random(100) 
d2 = np.random.random(1000) 

ax_hist = ax.twinx() # Create the twin axis, only once 

ax.plot(d1) 
ax_hist.hist(d1) 

ax.clear() 
ax_hist.clear() 

ax.plot(d2) 
ax_hist.hist(d2)