如何使用Matplotlib绘制两个元组列表

时间:2018-08-05 08:49:45

标签: python matplotlib

我有两个列表,其中每个元素都是一个元组,应解释为

x = [(x1_begin, x1_end), (x2_begin, x2_end), ... , (xn_begin, xn_end)]
y = [(y1_begin, y1_end), (y2_begin, y2_end), ... , (yn_begin, yn_end)] 

在一个图中,我想绘制所有这些点,并为所有i在(yi_begin, yi_end)(xi_begin, xi_end)之间绘制线。

以下代码设法绘制所有点。但是我不确定如何正确地在两点之间画线。非常感谢您的帮助。

import matplotlib.pyplot as plt

x = [(1, 27), (32, 55), (56, 80), (84, 103)]
y = [(5, 7), (3, 6), (4, 9), (6, 11)]

fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(x, y, color='black')
plt.show()

2 个答案:

答案 0 :(得分:1)

如果确实是每个元组要求一行,则代码如下。

fig = plt.figure()
ax = fig.add_subplot(111)
assert len(x) == len(y)
for i in range(len(x)):
    plt.plot(x[i], y[i])
plt.show()

给你

enter image description here

答案 1 :(得分:1)

遍历您的元组:

import matplotlib.pyplot as plt

x = [(1, 27), (32, 55), (56, 80), (84, 103)]
y = [(5, 7), (3, 6), (4, 9), (6, 11)]

fig = plt.figure()
ax = fig.add_subplot(111)
for xt, yt in zip(x,y):
    ax.plot(xt, yt, color='black')
plt.show()

enter image description here