2013-05-06 82 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()