为什么我的 pyplot 没有显示线条?

why does my pyplot show no lines?

我是 pyplot 的新手,想知道我在这里做错了什么。

我想绘制一系列随机线段:

下面是一些示例代码:

import matplotlib.pyplot as plt

def testPlot():
  minx = miny = -1
  maxx = maxy = 30
  # some points randomly generated
  points = [((10, 21), (19, 22)), ((11, 9), (22, 27)), ((9, 13), (5, 9)), ((18, 4), (2, 21)), ((25, 27
  for pair in points:
    print pair
    for point in pair:  #plot each point with a small dot
      x = point[0]
      y = point[1]
      plt.plot(x,y,'bo')
    # draw a line between the pairs of points
    plt.plot(pair[0][0],pair[0][1],pair[1][0],pair[1][1],color='r',linewidth=2)
  plt.axis([minx,maxx,miny,maxy])
  plt.show()

这是我在 运行 之后得到的结果,点与点之间应该有线,但线在哪里?

((10, 21), (19, 22))
((11, 9), (22, 27))
((9, 13), (5, 9))
((18, 4), (2, 21))
((25, 27), (11, 13))

感谢您提供任何线索

这是问题所在的行:

...
plt.plot(pair[0][0],pair[0][1],pair[1][0],pair[1][1],color='r',linewidth=2)
...

您正在尝试绘制引用 x,y,x1,y1,实际上应该是 ((x, x1), (y, y1))。纠正这个似乎工作正常:

def testPlot():
  minx = miny = -1
  maxx = maxy = 30
  # some points randomly generated
  points = [((10, 21), (19, 22)), ((11, 9), (22, 27)), ((9, 13), (5, 9)), ((18, 4), (2, 21)), ((25, 27), (11, 13))]
  for pair in points:
    print pair
    for point in pair:  #plot each point with a small dot
      x = point[0]
      y = point[1]
      plt.plot(x,y,'bo')
    # change this line to ((x, x1), (y, y1)) 
    plt.plot((pair[0][0],pair[1][0]),(pair[0][1],pair[1][1]), color='r',linewidth=2)
  plt.axis([minx,maxx,miny,maxy])
  plt.show()

结果: