我遇到了一个问题,如何在Python中使用Matplotlib绘制三角形边框.我想创建一个特定的模式,但遇到了意想不到的行为.我需要在识别和解决问题方面得到帮助.
这是我的代码
import numpy as np
import matplotlib.pyplot as plt
N = 5
A = np.array([(x, y) for y in range(N, -1, -1) for x in range(N + 1)])
t = np.array([[1, 1], [-1, 1]])
A = np.dot(A, t)
# I have defined a triangle
fig = plt.figure(figsize=(10, 10))
triangle = fig.add_subplot(111)
X = A[:, 0].reshape(N + 1, N + 1)
Y = A[:, 1].reshape(N + 1, N + 1)
for i in range(1, N + 1):
for j in range(i):
line_x = np.array([X[i, j + 1], X[i, j], X[i - 1, j]])
line_y = np.array([Y[i, j + 1], Y[i, j], Y[i - 1, j]])
triangle.plot(line_y,line_x, color='black', linewidth=1)
plt.show()
but I am getting this image, as u can see,
在拐角处,当我包围它的时候,额外的队伍来了.我不想要这额外的一行,我试着用循环来解决它,即使额外的一行可以保持不变
for i in range(6):
if i == N-1 :
for j in range(i-1):
line_x = np.array([X[i , j+1], X[i, j],X[i-1, j]])
line_y = np.array([Y[i, j+1], Y[i, j], Y[i-1, j]])
triangle.plot(line_y, line_x, color='black', linewidth=1)
pass
else:
for j in range(i):
line_x = np.array([X[i , j+1], X[i, j],X[i-1, j]])
line_y = np.array([Y[i, j+1], Y[i, j], Y[i-1, j]])
triangle.plot(line_y,line_x, color='black', linewidth=1)
pass
Plt.show() 请妥善解决这个问题