python Matplotlib不绘制最后一行

hkmswyz6  于 2023-04-28  发布在  Python
关注(0)|答案(2)|浏览(128)

我有一个函数,它接受一个浮点值的元组列表,从列表中我创建了两个新的独立列表,每个列表包含三角形的顶点坐标。然后使用matplotlib绘制顶点。

def draw_figure(list_of_floats):
    
x_coord, y_coord = zip(*list_of_floats)
x_coord = list(x_coord)
y_coord = list(y_coord)

# print("Coordinates:")
# for item in x_coord:
#     print(item)
# for item in y_coord:
#     print(item)

# Plot the triangle
plt.plot(x_coord, y_coord)

# Set the plot limits
plt.xlim(min(x_coord) - 1, max(x_coord) + 1)
plt.ylim(min(y_coord) - 1, max(y_coord) + 1)

但是图书馆不是画三条线,而是画两条。我试着补充:

plt.plot(x_coord, y_coord, x_coord[0], y_coord[1])

所以它不得不画第三条线到开始,但它也没有工作。

我该怎么弥补?

xnifntxz

xnifntxz1#

只需在末尾附加初始(x,y)坐标:

import matplotlib.pyplot as plt

def draw_figure(list_of_floats):
    x_coord, y_coord = zip(*list_of_floats)
    x_coord = list(x_coord)
    y_coord = list(y_coord)

    # THIS: add initial point
    x_coord.append(x_coord[0])
    y_coord.append(y_coord[0])

    # Plot the triangle
    plt.plot(x_coord, y_coord)

    # Set the plot limits
    plt.xlim(min(x_coord) - 1, max(x_coord) + 1)
    plt.ylim(min(y_coord) - 1, max(y_coord) + 1)

我用以下数据进行了测试:

draw_figure([[1, 2], [3, -1], [2.5, 5]])

ecfsfe2w

ecfsfe2w2#

请注意以下注意事项:

1.确保您已在图中包含所有必要的数据。您可能不小心排除了数据中的最后一个点或线。
1.检查x轴和y轴的极限。如果限制设置不正确,则最后一行可能不可见。您可以尝试使用xlim()和ylim()函数调整限制。
1.尝试在代码末尾调用show()函数,以确保完全呈现绘图。有时绘图窗口可能不会自动更新,调用show()可以强制更新。

相关问题