plt绘图加图标_Python可视化33|matplotlib-rcParams及绘图风格(style)设置详解

本文介绍了如何修改matplotlib的rcParams默认参数以及如何设置和使用绘图风格,包括全局修改、局部修改和自定义风格。通过示例展示了恢复默认配置、组合使用风格以及创建自定义风格文件的方法。
摘要由CSDN通过智能技术生成

4dad60dc2afc07b76e034ccc0995e77f.png
本文详细介绍matplotlib- 绘图风格(style)及rcParams设置。

本文速览

更多教程,欢迎关注@pythonic生物人

1、rcParams默认参数修改
rcParams中默认参数绘图
修改rcParams默认参数
取消rcParams参数修改

2、绘图风格设置
with局部修改绘图风格
使用mpl.rc_file_defaults()达到局部修改的目的
组合使用多种绘图风格
自定义绘图风格

1、rcParams默认参数修改

rcParams中存储了Matplotlib绘图时所有参数的默认值,参数详细:

windows见:xxanaconda3anaconda3Libsite-packagesmatplotlibmpl-datamatplotlibrc
linux:matplotlib.matplotlib_fname()查看
  • rcParams中默认参数绘图
import numpy as np
import matplotlib.pyplot as plt
plt.figure(dpi=100)
plt.plot([1,2,3])

9e86225dba2d1dd1e5bc6572687f7e7d.png
  • 修改rcParams默认参数

mpl.rc_params()类似一个字典对象,所以可以通过键修改其值,变动为全局修改,改动后整个figure都实用【jupyter notebook中每个cell都使用该风格】,除非重新启动了IDE。
以下修改部分默认参数:

#lines.linestyle: -#默认线性为实心线'-'
#lines.marker: None#默认线上无marker
#axes.grid: False#默认无网格线

#默认绘图颜色修改
#axes.prop_cycle cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])


mpl.rcParams['lines.marker'] = '^'
mpl.rcParams['lines.linestyle'] = '--'
mpl.rcParams['axes.grid'] = True

mpl.rcParams['axes.prop_cycle'] = cycler(color=['r', 'g', 'b', 'y'])
plt.figure(dpi=100)
plt.plot([1,2,3])

print(mpl.rcParams['lines.marker'])

f917c35ff48648e17f62ab17cc5fe325.png
  • 取消rcParams参数修改

有mpl.rc_file_defaults()和mpl.rcdefaults()两种方法可以使用:
mpl.rc_file_defaults(): 恢复到本次导入matplotlib时的默认配置【建议该种方式,类似写了一天的论文没有保存,昨天写的依旧在】
mpl.rcdefaults():恢复到下载matplotlib时的默认配置【不建议,类似手机恢复出厂设置】
当然,最原始的方式就是重新启动ide即可达到mpl.rc_file_defaults()的效果。

mpl.rcParams['lines.marker'] = '^'
mpl.rcParams['lines.linestyle'] = '--'
mpl.rcParams['axes.grid'] = True
mpl.rc_file_defaults() #取消以上修改的默认参数

plt.figure(dpi=100)
plt.plot([1,2,3])

de7da1d8874a90d7a7668647effb6499.png

2、绘图风格设置

matplotlib绘图风格的使用见之前文章:matplotlib 26中绘图风格大全

  • with局部修改绘图风格

绘图风格只对with模块中的axes起作用

import numpy as np
import matplotlib.pyplot as plt
mpl.rc_file_defaults()
my_dpi=96
plt.figure(figsize=(480/my_dpi,480/my_dpi),dpi=my_dpi)
plt.figure()


with plt.style.context('ggplot'):#使用with 临时修改绘图风格
    plt.subplot(221)
    plt.plot([-1,0,1])


plt.subplot(222)#因为上一个子图只是临时修改,所以当前子图使用了默认风格,没有沿用'ggplot'风格
plt.plot([1,2,3])

plt.style.use('fivethirtyeight')#
plt.subplot(223)#必需置于style之后,否则毫无用处
plt.plot([1,2,3])

plt.subplot(224)#因为上一个子图修改了全局变量风格,所以当前子图沿用'fivethirtyeight'风格
plt.plot([1,2,3])

e4c4527fe474da2bb1d381cf96a3063d.png
  • mpl.rc_file_defaults()局部修改绘图风格

直接使用mpl.rc_file_defaults()清除所有设置,但时,不建议使用,因为有时候我们不单单只是修改了style。还修改了其它默认参数。

plt.style.use('fivethirtyeight')#
plt.subplot(121)#必需置于style之后,否则毫无用处
plt.plot([1,2,3])

mpl.rc_file_defaults()#清除格式
plt.subplot(122)#因为上一个子图修改了全局变量风格,所以当前子图沿用'fivethirtyeight'风格
plt.plot([1,2,3])

3e290fb88d9a5813c04a2b098ef176db.png
  • 组合使用多种绘图风格
mpl.rc_file_defaults()
plt.style.use('fivethirtyeight')
plt.subplot(131)
plt.plot([1,2,3])
plt.title("'fivethirtyeight'")

mpl.rc_file_defaults()
plt.style.use('ggplot')
plt.subplot(132)
plt.plot([1,2,3])
plt.title("'ggplot'")


mpl.rc_file_defaults()#清除格式
plt.style.use(['fivethirtyeight', 'ggplot'])#风格'fivethirtyeight', 'ggplot'结合
plt.subplot(133)
plt.plot([1,2,3])
plt.title("['fivethirtyeight', 'ggplot']")

4707c7a1860d83bb9f55491c26cdff21.png
  • 自定义绘图风格

非常简单,只需要新建一个文件:my1st.mplstyle
输入你想修改的内容,举例如下:

axes.prop_cycle: cycler('color', ['c72e29', 'fc4f30', 'e5ae38', '6d904f', '8b8b8b', '810f7c'])

axes.titlesize : 16
axes.labelsize : 15
axes.grid : True
grid.color : 0.8
axes.facecolor: 0.98

axes.spines.top : False
axes.spines.right:  False

lines.linewidth : 1.5
lines.linestyle : --
lines.marker : *
lines.markerfacecolor : 098154
lines.markeredgewidth: 0
lines.markersize : 20


xtick.labelsize : 10
ytick.labelsize : 10

使用my1st.mplstyle风格绘张图:

mpl.rc_file_defaults()
plt.style.use(r'xxxanaconda3anaconda3Libsite-packagesmatplotlibmpl-datastylelibmy1st.mplstyle')#加绝对路径导入制作的style文件
plt.plot([1,2,3])
plt.title('My1st mplstyle')

3d0d6a12b479dfe35406231fafa301fe.png

参考资料

  • https://matplotlib.org/tutorials/introductory/customizing.html#customizing-with-matplotlibrc-files
  • https://github.com/matplotlib/matplotlib/blob/master/matplotlibrc.template

更多教程,欢迎微信关注@pythonic生物人

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值