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

matplotlib使用plot绘制粗线条时如何关闭转角圆角效果

问题:在matplotlib中使用plot绘图时,是否可以关闭“转角圆角”效果?

场景说明

  • 需要在演示文稿中展示复杂的非光滑函数
  • matplotlib默认对线条转角做圆角处理,线宽越大该效果越明显
  • 为保证图表投影时清晰可见,需要设置较大的线宽

复现示例

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-1, 1, 1001)
y = abs(x)
plt.plot(x, y, linewidth=10)

plt.show()

问题表现

运行上述代码绘制的曲线,在x=0的拐点位置会呈现圆角效果,和该点实际的非光滑尖角特征不符。已尝试增加x采样点数、手动在绘图数据中加入x=0拐点坐标,均无法解决该问题。


解决方案

圆角效果是matplotlib默认的线条连接样式导致的,直接在绘图时指定solid_joinstyle参数为miter即可得到锐利的尖角转角:

# 单条线设置尖角连接
plt.plot(x, y, linewidth=10, solid_joinstyle='miter')

如果需要全局生效,所有绘制的线条都默认使用尖角连接,可以提前修改rc配置:

plt.rcParams['lines.solid_joinstyle'] = 'miter'

参数说明

matplotlib的线条连接样式共支持3种可选值:

  • miter:尖角连接,拐点处为锐利的尖角,适合绘制非光滑函数
  • round:默认值,圆角连接,拐点处做圆弧过渡
  • bevel:平切连接,拐点处为平直的切面效果

注:如果遇到夹角极小的尖角被自动截断的情况,可以适当调大miterlimit参数适配需求,常规非光滑函数(如绝对值函数、分段线性函数)使用默认miterlimit即可正常显示尖角。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:51:25