使用matplotlib绘制离散线图

时间:2018-04-26 06:28:13

标签: python matplotlib

我正在尝试使用matplotlib绘制离散函数的图,并在这些离散线之间连接线,但生成的图非常奇怪。虽然我已经将所有离散线(蓝色线)设置为具有相同的长度,但它们在图中看起来仍然不同。此外,连接线和离散线之间有空格,即使我设置它们应该在同一点相交。

Generated plot

import numpy as np
from matplotlib import pyplot as plt

x=np.linspace(0,17)
plt.ylim(-5,2)

plt.plot(x[x < 1.0], 0.0 + x[x < 1.0]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 2.0) & (x < 3.0)], 1.31 + x[(x>2.0) & (x<3.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 4.0) & (x < 5.0)], 0.16 + x[(x>4.0) & (x<5.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 6.0) & (x < 7.0)], -1.94 + x[(x>6.0) & (x<7.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 8.0) & (x < 9.0)], -3.77 + x[(x>8.0) & (x<9.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 10.0) & (x < 11.0)], -3.82 + x[(x>10.0) & (x<11.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 12.0) & (x < 13.0)], -2.75 + x[(x>12.0) & (x<13.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 14.0) & (x < 15.0)], -1.64 + x[(x>14.0) & (x<15.0)]*0, color='blue', linewidth=3.0)

plt.plot([1,2],[0.0,1.31], color='black')
plt.plot([3,4],[1.31,0.16], color='black')
plt.plot([5,6],[0.16,-1.94], color='black')
plt.plot([7,8],[-1.94,-3.77], color='black')
plt.plot([9,10],[-3.77,-3.82], color='black')
plt.plot([11,12],[-3.82,-2.75], color='black')
plt.plot([13,14],[-2.75,-1.64], color='black')

plt.show()

1 个答案:

答案 0 :(得分:1)

您看到的是x数据的(低)分辨率,因为它只包含50个点,这是np.linspace的默认值。

尝试

x = np.linspace(0, 17, 1000)

例如。