You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib绘制三角形边框出现多余线条问题求助

解决Matplotlib绘制三角形图案时角落出现多余线条的问题

问题根源在于初始循环中,当i=N(最后一行)时,j的取值范围覆盖到了N-1,导致绘制的线条超出预期的三角形区域,从而在角落产生多余线条。你之前的修复仅处理了i=N-1的情况,未对i=N的边界进行控制。

修复方案

调整循环中j的取值范围,针对最后一行(i=N)限制j的上限,避免绘制越界线条:

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)

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):
    # 最后一行时,j最多循环到N-2,避免越界
    j_range = range(i) if i < N else range(N - 1)
    for j in j_range:
        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()

代码说明

  • 通过j_range动态控制每个i对应的j循环范围:当i不是最后一行时,保持原范围range(i);当i=N时,将范围缩小为range(N-1),即j从0到N-2。
  • 这个调整会阻止绘制最后一行最右侧的那条越界线条,彻底消除角落的多余线条。

内容的提问来源于stack exchange,提问作者Umar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:27:16