我是编程的新手,我得到一个问题,要求我从给出的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()
答案 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()