如何在Python中使用坐标绘制三角形及在同图绘制多个三角形
在Python中用坐标绘制三角形(含多三角形示例)
嘿,刚好我经常用Python做这类绘图需求,用matplotlib就能轻松搞定你的问题,咱们一步步来拆解:
1. 绘制单个三角形
首先我们用最常用的matplotlib库来实现,它简单直观,适合这类基础绘图场景。
实现步骤:
- 先导入matplotlib的pyplot模块
- 定义你的三角形坐标点
- 把坐标拆分成x、y轴的列表,方便绘图
- 记得闭合图形(把第一个坐标点加到列表末尾,不然画出来的是三条不相连的线)
- 最后调用绘图函数展示图形
代码示例:
import matplotlib.pyplot as plt # 你的示例三角形坐标 triangle_points = [(0, 0), (0, 1), (1, 0)] # 拆分x和y坐标 x_coords, y_coords = zip(*triangle_points) # 闭合图形:把第一个点追加到末尾 x_coords += (x_coords[0],) y_coords += (y_coords[0],) # 绘制三角形边框 plt.plot(x_coords, y_coords, color='blue', linewidth=2) # 如果需要填充颜色,取消下面这行注释即可 # plt.fill(x_coords, y_coords, color='lightblue', alpha=0.5) # 设置坐标轴比例为等距,避免图形变形 plt.gca().set_aspect('equal', adjustable='box') # 调整坐标轴范围让图形显示更舒适 plt.xlim(-0.5, 1.5) plt.ylim(-0.5, 1.5) plt.title('单个三角形示例') plt.show()
2. 在同一图表绘制多个三角形
要画多个三角形其实很简单:把所有三角形的坐标存成一个列表,然后循环遍历每个三角形的坐标,重复上面的绘制步骤就行。我们可以给每个三角形设置不同颜色,方便区分。
代码示例:
import matplotlib.pyplot as plt # 定义多个三角形的坐标集合,包含你的示例三角形 multiple_triangles = [ [(0, 0), (0, 1), (1, 0)], # 你的示例三角形 [(1, 1), (2, 0), (2, 2)], # 第二个三角形 [(0.5, 1.5), (1.5, 1.5), (1, 2)] # 第三个三角形 ] # 设置全局坐标轴范围,适配所有三角形 plt.xlim(-0.5, 2.5) plt.ylim(-0.5, 2.5) plt.gca().set_aspect('equal', adjustable='box') # 给每个三角形分配不同颜色 colors = ['blue', 'green', 'red'] # 循环绘制每个三角形 for idx, triangle in enumerate(multiple_triangles): x, y = zip(*triangle) # 闭合图形 x += (x[0],) y += (y[0],) # 绘制边框并添加图例标签 plt.plot(x, y, color=colors[idx], linewidth=2, label=f'三角形{idx+1}') # 如需填充,取消下面注释 # plt.fill(x, y, color=colors[idx], alpha=0.3) plt.title('同一图表中的多个三角形') plt.legend() # 显示图例区分不同三角形 plt.show()
小提示:
- 如果只需要填充的三角形,直接用
plt.fill()代替plt.plot()即可 set_aspect('equal')非常关键,它能保证三角形不会因为坐标轴比例问题变形- 如果你需要交互式的绘图,可以试试
plotly库,但matplotlib是最基础、易上手的选择
内容的提问来源于stack exchange,提问作者Ukiyo




