点的连通图

时间:2017-05-27 16:05:20

标签: python for-loop matplotlib

我是编程的新手,我得到一个问题,要求我从给出的2个列表中绘制连接点。我的逻辑是保持单个坐标不变,同时在for循环中绘制另一个坐标,但这不起作用...请帮助

from matplotlib import pyplot as plt
import numpy as np

def Question_3():

   x = [0, 0.7, 1, 0.7, 0, -0.7, -1, -0.7]
   y = [1, 0.7, 0, -0.7, -1, -0.7, 0, 0.7]

   plt.subplot(121)
   plt.title("Scatter plot of points", fontsize = 16)
   plt.plot(x, y, ".k")
   plt.show()

   plt.subplot(122)
   plt.title("Connectivity plot of points", fontsize = 16)

   for C1 in zip(x, y):
      for C2 in zip(x, y):            
          plt.plot(C1, C2, "-r")      

   plt.show()
Question_3()

1 个答案:

答案 0 :(得分:1)

我认为连通图是指将每个点与其他每个点连接起来的图。

从这个意义上说,你采取的方法是正确的;请记住,plt.plot(x,y)有一个x坐标列表或序列作为第一个参数,一个作为y坐标作为第二个参数。因此,您需要将两个循环中的变量解压缩并拆分为x和y分量。

from matplotlib import pyplot as plt

def Question_3():

   x = [0, 0.7, 1, 0.7, 0, -0.7, -1, -0.7]
   y = [1, 0.7, 0, -0.7, -1, -0.7, 0, 0.7]

   plt.subplot(121)
   plt.title("Scatter plot of points", fontsize = 16)
   plt.plot(x, y, ".k")


   plt.subplot(122)
   plt.title("Connectivity plot of points", fontsize = 16)

   for x0,y0 in zip(x, y):
      for x1,y1 in zip(x, y):            
          plt.plot((x0,x1), (y0,y1), "-r")      

   plt.show()
Question_3()

enter image description here