2013-05-06 84 views
6

我想在一個日誌情節情節與matplotlib.pyplot

xv1 = 10 

plt.semilogy(t,P,'b') 
plt.semilogy(t,Pb,'r') 
plt.vlines(xv1,-1,1,color='k',linestyles='solid') 
plt.xlabel('Time [s]') 
plt.ylabel('P [Pa]') 
plt.grid() 
plt.show() 

的vlines中的情節顯示不出來(它爲plt.plot)

任何繪製垂直線vlines想法?謝謝!

+1

您還可以在代碼中包含一些(僞造的?)數據嗎?很難測試是否不知道你輸入的是什麼。 – tacaswell 2013-05-06 15:21:19

+3

爲什麼你使用半邏輯圖(它不能包含值'y = 0'),並且仍然希望垂直線從-1延伸到1?如果你想要在整個圖上有一條線,你應該使用'axvline'。 – 2013-05-06 15:30:14

+0

@DavidZwicker完全錯過了半日誌....你使用的是什麼版本的mpl?在日誌圖中如何處理未定義值的剪裁方面有一些調整。 – tacaswell 2013-05-06 16:47:02

回答

12

對於繪製橫跨整個繪圖範圍的垂直線,您可以使用axvline。您的代碼可能會讀取

xv1 = 10 

plt.semilogy(t, P, 'b') 
plt.semilogy(t, Pb, 'r') 
plt.axvline(xv1, color='k', linestyle='solid') 
plt.xlabel('Time [s]') 
plt.ylabel('P [Pa]') 
plt.grid() 
plt.show()