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

matplotlib如何设置线段粗细仅作用于主体、不包含两端端点

问题解决方案

1. Matplotlib内置参数直接解决

存在对应内置参数,你可以通过设置线段的solid_capstyle参数解决这个问题。
Matplotlib绘制线段时默认端点样式为projecting,会向外延伸半个线宽的长度,这就是你观察到粗线段视觉覆盖范围更大的原因。将粗线段的solid_capstyle设置为butt,即可让线段端点严格对齐你指定的坐标位置,不会额外向外延伸。
修改后的示例代码如下:

import matplotlib.pyplot as plt

plt.xlim(1, 10)
plt.ylim(0,30)
plt.grid(True, which="both")
# 增加solid_capstyle参数控制端点样式
plt.plot([5, 5], [10, 20], "-", c="pink", linewidth=12, solid_capstyle='butt')
plt.plot([5, 5], [10, 20], "-", c="darkgreen", linewidth=1)
plt.show()

2. 替代实现方案

如果需要适配更多场景,也可以选择以下两类实现方式:

  • 用vlines函数绘制垂直线,这是Matplotlib专门用于批量绘制垂直线段的API,同样支持solid_capstyle参数,处理大量垂直线段时代码结构更简洁
  • 用matplotlib.patches.Rectangle绘制窄矩形替代线段,矩形的边界坐标完全由用户自定义,不会出现端点溢出问题,适合对边界精度要求极高的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:36:02