2013-05-06 45 views
6

Tôi đang cố gắng để vẽ đường thẳng đứng trong một âm mưu logcốt truyện vlines với 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() 

Các vlines không hiển thị trong cốt truyện (nó cho plt.plot)

Bất kỳ ý tưởng? Cảm ơn!

+1

Bạn cũng có thể bao gồm một số dữ liệu (giả mạo) với mã của mình không? Thật khó để kiểm tra nếu bạn không biết bạn đầu vào là gì. – tacaswell

+3

Tại sao bạn sử dụng một âm mưu bán lograithmic (mà không thể chứa các giá trị 'y = 0') và vẫn muốn đường thẳng đứng của bạn mở rộng từ -1 đến 1? Nếu bạn muốn có một dòng mở rộng trên toàn bộ hình, bạn có lẽ nên sử dụng 'axvline'. –

+0

@DavidZwicker Hoàn toàn bỏ lỡ bản ghi nhật ký .... Bạn đang sử dụng phiên bản mpl nào? Đã có một số tinh chỉnh trong cách cắt các giá trị không xác định được xử lý trong các ô log. – tacaswell

Trả lời

12

Để vẽ các đường thẳng đứng trải rộng trên toàn bộ phạm vi ô, bạn có thể sử dụng axvline. Sau đó, mã của bạn có thể đọc

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() 
Các vấn đề liên quan