前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」

Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」

作者头像
全栈程序员站长
发布2022-08-12 14:22:11
12.1K0
发布2022-08-12 14:22:11
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

很多时候为了可视化效果的美观,就不得不从细节上下手,这里我们就介绍一下这些细节之一的网格线。

首先导入需要用到的库,matplotlib.pyplot是必须的,Numpy是为了生成画布用的。

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

生成网格

代码语言:javascript
复制
plt.gcf().set_facecolor(np.ones(3)* 240 / 255)   # 生成画布的大小
plt.grid()  # 生成网格
plt.show()
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」

参数

matplotlin.pyplot.grid(b, which, axis, color, linestyle, linewidth, **kwargs)

grid()参数有很多,这里只列举了我此次工作中用到的几个:

b : 布尔值。就是是否显示网格线的意思。官网说如果b设置为None, 且kwargs长度为0,则切换网格状态。但是没弄明白什 么意思。如果b设置为None,但是又给了其它参数,则默认None值失效。

which : 取值为’major’, ‘minor’, ‘both’。 默认为’major’。看别人说是显示的,我的是Windows7下,用Sublime跑的,minor只是一个白画板,没有网格,major和both也没看出什么效果,不知道为什么。

axis : 取值为‘both’, ‘x’,‘y’。就是以什么轴为刻度生成网格。例如我输入参数x就会在x轴方向上生成纵向的网格刻度。没有输入的方向则不会显示网格刻度。这里多谢 @湖尘 指正。

color : 这就不用多说了,就是设置网格线的颜色。或者直接用c来代替color也可以。

linestyle :也可以用ls来代替linestyle, 设置网格线的风格,是连续实线,虚线或者其它不同的线条。 | '-' | '--' | '-.' | ':' | 'None' | ' ' | '']

linewidth : 设置网格线的宽度

设置axis=’y’

代码语言:javascript
复制
plt.grid(axis="y")
plt.show()
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」

设置axis=’x’

Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」

设置color=’r’

代码语言:javascript
复制
plt.grid(c='r')
plt.show()

红色

Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
代码语言:javascript
复制
plt.grid(c='g')
plt.show()

绿色

Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」

设置linestyle

代码语言:javascript
复制
plt.grid(linestyle='-.')
plt.show()
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
代码语言:javascript
复制
plt.grid(ls='--')
plt.show()
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」

因为b和which没有显示效果。所以这里就不上图了。

————————–更******新————————–

今天又试了下,当which=’major’的时候,是可以显示网格线的。同时感谢机器不学习o_o的指导,在which=”minor”时,需要设置次刻度线。

代码语言:javascript
复制
plt.grid(axis='y', which='major')
plt.show()
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
代码语言:javascript
复制
plt.grid(axis="x", which="major")
plt.show()
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」

which=’minor’

代码语言:javascript
复制
ax = plt.gca()
ax.set_xlim(0, 10)
miloc = plt.MultipleLocator(1)
ax.xaxis.set_minor_locator(miloc)
ax.grid(axis='x', which='minor')
plt.show()
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」
Python绘图库Matplotlib.pyplot之网格线设置(plt.grid())「建议收藏」

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131449.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档