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

Matplotlib中如何为所有x、y刻度值添加指定透明度的背景横竖网格线?

Matplotlib中如何为所有x、y刻度值添加指定透明度的背景横竖网格线?

嗨,看起来你已经把年降雨量折线和均值线画得有模有样啦!想要添加示例图里那种背景的横竖网格线其实超简单,用Matplotlib自带的plt.grid()方法就能轻松实现~

你只需要在现有代码里,在调用plt.legend()之前加上一行网格线的设置代码就行。我给你修改后的完整代码,你可以直接参考:

x = [value for value in df['YEAR']]
y1 = [value for value in df['ANNUAL']]
y2 = [df['ANNUAL'].mean()]*(len(x))

fig = plt.figure(figsize=(8,5))

plt.plot(x,y1,label='Annual rainfall',color='blue')
plt.plot(x,y2,'r--',label='Mean Rainfall')

# 添加背景网格线的关键代码
plt.grid(which='both', alpha=0.3, linestyle='-', color='lightgray')

plt.legend()
plt.show()

我给你解释下这行网格代码里每个参数的作用,方便你根据自己的需求调整:

  • which='both':让网格线对齐所有的x、y刻度(包括主刻度和次刻度,如果你只想要主刻度的网格,改成which='major'就行)
  • alpha=0.3:设置网格线的透明度,数值越小越透明,这样就不会抢了折线图的风头
  • linestyle='-':用实线样式,和你示例图里的网格线一致
  • color='lightgray':设置网格线为浅灰色,完美匹配示例图的风格

要是你只想单独显示横向或者纵向的网格,还可以加上axis='x'(只显示纵向网格)或者axis='y'(只显示横向网格),比如plt.grid(axis='x', alpha=0.3, ...)。

备注:内容来源于stack exchange,提问作者Chakradhar Kalla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:29:49