[英]Plot Y against X as X is a time range for each value of y
我认为你需要一个阶梯功能。 请注意,在这里我在开头添加0到X和5到Y,以便正确的第一步跨度从0到10
import matplotlib.pyplot as plt
X = [0, 10, 25, 45, 50]
Y = [5, 5, 10, 11, 6]
plt.step(X, Y)
plt.show()
编辑:如果你有未分类的X阵列,并且你想总结X值,你可以使用NumPy的cumsum
。 这里的主要思想是先将0插入列表,然后转换为数组,然后进行累加求和
import matplotlib.pyplot as plt
import numpy as np
X = [6, 27, 9, 19]
X.insert(0,0)
X = np.cumsum(X)
Y = [5, 5, 10, 11, 6]
plt.step(X, Y)
plt.show()
我提出了一个简单的循环解决方案如下。 为了使图形更好,您可以指定不同的颜色,文本等。
#!/usr/bin/env ipython
# ------------------
import numpy as np
import matplotlib as mpl
import matplotlib.pylab as plt
# --------------------
xdata=[0,10,25,45,50]
ydata=[5,10,11,6];
colors=['b','b','b','b']
# --------------------
fig=plt.figure();
ax=fig.add_subplot(111);
for i in range(len(xdata)-1):
xloc=0.5*(xdata[i+1]+xdata[i])
xwidth=xdata[i+1]-xdata[i];
ax.bar(xloc,ydata[i],width=xwidth,color=colors[i]);
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.