2016-03-02 77 views
1

我遇到了一個我不明白的繪圖問題。下面的代碼應繪製一條直線,用一種顏色填充線條上方的區域,並在其中繪製幾個散點。這一切都有效,但如果我結合scatterlinefill_between中的任何一個,我無法設置繪圖限制。情節面積比過去大得多。Matplotlib ylim和xlim不能組合散點圖和線圖或fill_between

那麼如何設置繪圖限制?

from matplotlib import pyplot as plt 
import numpy as np 
x = np.linspace(0,160,100) 
MCSample = np.random.normal(112,10,1000) 
YSample = np.random.normal(100,2.41,1000) 
y_limit = max(160, np.max(YSample)) 

fig, ax = plt.subplots(1, 1) 
ax.plot(x,x, label="Limit State function") 
ax.scatter(MCSample,YSample, marker='.', color='b', alpha=0.5) 
ax.fill_between(x,y_limit,x, alpha=0.1, color='r') 
ax.set_xlim=(0,160) 
ax.set_ylim=(0,y_limit) 
plt.show() 

我正在使用Python 3.5.1和Matplotlib 1.5.1。

回答

2

在您的代碼中,您將ax.set_xlim設置爲等於(0,160)。

所有你需要做的,使你的代碼工作是擺脫等號,如下圖所示:

ax.set_xlim(0,160) 
ax.set_ylim(0,y_limit) # no equals sign on these 2 lines 

現在你正在申請這些限制的圖,而不是將它們定義爲等於限制。

+0

謝謝DavidG!我一定是盲目的=號! – Henning