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

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

本文速览

1、rcParams默认参数修改

rcParams中默认参数绘图

修改rcParams默认参数

取消rcParams参数修改

2、绘图风格设置

with局部修改绘图风格

使用mpl.rc_file_defaults()达到局部修改的目的

组合使用多种绘图风格

自定义绘图风格

1、rcParams默认参数修改

rcParams中存储了Matplotlib绘图时所有参数的默认值,参数详细:windows见:xx\anaconda3\anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc

linux:matplotlib.matplotlib_fname()查看rcParams中默认参数绘图

import numpy as np

import matplotlib.pyplot as plt

plt.figure(dpi=100)

plt.plot([1,2,3])修改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'])取消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])

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])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])组合使用多种绘图风格

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']")自定义绘图风格

非常简单,只需要新建一个文件: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'xxx\anaconda3\anaconda3\Lib\site-packages\matplotlib\mpl-data\stylelib\my1st.mplstyle')#加绝对路径导入制作的style文件

plt.plot([1,2,3])

plt.title('My1st mplstyle')

参考资料

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

你可能感兴趣的:(python设置画图风格)