【matplotlib】可视化解决方案——如何定制化网格

概述

很多时候为了可视化效果的美观,就不得不从细节上下手,本期我们就介绍一下绘图的网格线细节。在 matplotlib 中 Axes 对象提供了一个 grid() 方法用以开启或者关闭画布中的网格以及网格的主/次刻度,在改方法中用户可以自定义网格线的相关属性,关于Line2D对象,详情见可视化之路(四)Line2D类详解

# b: 指定是否显示网格线
# which: 指定这次更改的应用对象(主刻度轴还是次刻度轴)
# axis: 指定这次更改要应用的轴(X、Y、全部)
# kwargs:指定线条的Line2D属性
def grid(self, b=None, which='major', axis='both', **kwargs):
	...

官网说如果 b 设置为 None,但是传递 Line2D 属性,则 b 参数失效,本质原因是:

TOGGLE = object()  
UNSET = object()  
visible = kwargs.pop('visible', UNSET)  
  
if b is None:  
	// 如果kwargs传递了参数,则b=True
    if visible is UNSET:  
        if kwargs:  # grid(color='r')  
            b = True  
        else:  # grid()  
            b = TOGGLE  
    else:  # grid(visible=v)  
        b = visible

示例

下面的示例展示了如何自定义网格,包括网格线的颜色、线型和线宽,完整代码如下:

import matplotlib.pyplot as plt  
import numpy as np  
  
# plt.style.use("classic")  
  
# fig画布;axes子图区域  
fig, axes = plt.subplots(2, 3, figsize=(12, 4))  
# 准备数据  
x = np.arange(1, 11)  
  
# 开启默认网格  
axes[0][0].plot(x, x ** 3, 'g', lw=2)  
axes[0][0].grid(True)  
axes[0][0].set_title('default grid')  
  
# 只开启X轴网格  
axes[0][1].plot(x, x ** 3, 'r')  
axes[0][1].grid(True, axis='x')  
axes[0][1].set_title('only x grid')  
  
# 只开启Y轴网格b  
axes[0][2].plot(x, x ** 3, 'b')  
axes[0][2].grid(True, axis='y')  
axes[0][2].set_title('only y grid')  
  
# 自定义网格颜色  
axes[1][0].plot(x, x ** 3, 'g', lw=2)  
axes[1][0].grid(True, color='red')  
axes[1][0].set_title('customer grid1')  
  
# 自定义网格线型  
axes[1][1].plot(x, x ** 3, 'r', lw=2)  
axes[1][1].grid(True, ls='dashed')  
axes[1][1].set_title('customer grid2')  
  
# 自定义线宽  
axes[1][2].plot(x, x ** 3, 'b', lw=2)  
axes[1][2].grid(True, lw=3.0)  
axes[1][2].set_title('customer grid3')  
  
fig.tight_layout()  
plt.show()

画图结果如下:
在这里插入图片描述

往期回顾

  1. 【matplotlib】可视化解决方案——如何解决matplotlib中文乱码问题
  2. 【matplotlib】可视化解决方案——如何设置matplotlib风格集
  3. 【matplotlib】可视化解决方案——如何设置轴标签的透明度和大小
  4. 【matplotlib】可视化解决方案——如何向图表中添加数据表
  5. 【matplotlib】可视化解决方案——如何更改绘图区域背景颜色
  6. 【matplotlib】可视化解决方案——如何使用数学公式
  7. 【matplotlib】可视化解决方案——绘图刻度设置
  8. 【matplotlib】可视化解决方案——共享绘图区域问题
  9. 【matplotlib】可视化解决方案——子图设置大标题问题解决方案
  10. 【matplotlib】可视化解决方案——子图间距问题解决方案

文中难免会出现一些描述不当之处(尽管我已反复检查多次),欢迎在留言区指正,相关的知识点也可进行分享,希望大家都能有所收获!!如果觉得我的文章写得还行,不妨支持一下。你的每一个转发、关注、点赞、评论都是对我最大的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪猪家的大猪猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值