https://matplotlib.org/api/rcsetup_api.html#module-matplotlib.rcsetup

一、什么是rcParams?
我们在使用matplotliblib画图的时候经常会遇见中文或者是负号无法显示的情况,我们会添加下面两句话:

from matplotlib.pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']

mpl.rcParams['axes.unicode_minus']=False

我们都只知道这么做,很少去想一下这到底是为什么?

实际上,pylot使用rc配置文件来自定义图形的各种默认属性,称之为rc配置或rc参数。通过rc参数可以修改默认的属性,包括窗体大小、每英寸的点数、线条宽度、颜色、样式、坐标轴、坐标和网络属性、文本、字体等。

在matplotlib模块载入的时候会调用rc_params,并把得到的配置字典保存到rcParams变量中:

1、配置文件在哪里?

既然是配置文件,它也是一个文件,这个文件存在于matplotlib的安装文件夹之下,比如我的在以下文件夹:

D:\ProgramData\Anaconda3\Lib\site-packages\matplotlib\mpl-data  文件名称是 matplotlibrc   这是windows系统的,Unix和Linux会不一样。

我们可以通过实用文本文件打开这个文件进行查看,发现,里面的内容都是“ 键-值 ”的形式,这也就是为什么我们可以通过

mpl.rcParams['font.sans-serif'] = ['SimHei']  这种形式加以配置了。

2、如何查看默认配置信息——可以通过matplotlib的相关属性以及方法家已操作

(1)查看默认配置的方法

方法一:直接打开matplotlibrc文件

方式二:print(matplotlib.rc_params())

print(matplotlib.rcParamsDefault)

print(matplotlib.rcParams)                               #这三者是等价的

(2)设置相关的配置

# 修改方式一

mpl.rcParams['lines.linewidth'] = 2

mpl.rcParams['lines.color'] = 'r'

# 修改方式二

mpl.rc('lines', linewidth=4, color='g')

# 恢复默认参数

mpl.rcdefaults()

#从已有的文件更新

mpl.cr_file()

3、示例

import matplotlib
import matplotlib.pyplot as plt
import numpy as np x=np.linspace(0,2*np.pi)
y=np.sin(x) matplotlib.rcParams['lines.color']='blue' #更改划线颜色的默认设置 plt.plot(x,y,label='sin',linewidth=5)
plt.legend()
plt.show()

运行结果为:

二、什么是style
使用matplotlib画图的时候,除了我们可以针对每一个样式自己定义以外,我们还可以使用系统定义好的样式快速配置。

style是pyplot的一个子模块,方便进行风格转换,它里面定义了很多预设风格。本质上来说,每一个预设的风格style都是一个style文件,它是以  .mplstyle   为后缀的文件。我们依然可以查看,比如我的电脑在一下文件夹下,有很多的  .mplstyle文件:

D:\ProgramData\Anaconda3\Lib\site-packages\matplotlib\mpl-data\stylelib,里面的部分文件如下所示:

每一个文件名对应于一种预设风格。

我们可以打开一个文件,里面预设的风格属性也是通过“  键-值  ”对的形式表示的。

1、预设风格的查看

方式一:直接查看相应的文件夹即可

方式二:print(plt.style.available)   #会打印出所有的预设风格的名称

2、预设风格的使用——就添加一句话即可

x=np.linspace(0,2*np.pi)

y=np.sin(x)

plt.style.use('ggplot')                         ##使用 ggplot  的绘图风格

plt.plot(x,y,label='sin',linewidth=5)

plt.legend()

plt.show()

3、自定义画图风格style

比如我在上面所述的文件夹下自定义一个 myownstyle.mplstyle 文件,里面的内容如下所示:

lines.color: green
          lines.linewidth:8
          patch.edgecolor: red

text.color: white

axes.facecolor: yellow
          axes.edgecolor:black

然后调用如下:

import matplotlib
import matplotlib.pyplot as plt
import numpy as np x=np.linspace(0,2*np.pi)
y=np.sin(x) f=plt.figure()
plt.style.use('myownstyle') ##使用自定义的样式文件
plt.plot(x,y,label='sin',linewidth=5)
plt.legend() plt.show()

运行结果为:

4、补充

除此之外,我们还可以使用with代码块。在代码块内部画的图是制定的风格,而在代码块外部画的图却不用这种风格,入戏所示:

x=np.linspace(0,2*np.pi)
y=np.sin(x) f=plt.figure()
with plt.style.context('myownstyle'): #将use换成context
pass
plt.plot(x,y,label='sin')
plt.legend() plt.show()

运行结果为:

由此可见,因为图是在with代码块之外画的,所以并没有使用到我的样式 myownstyle。
————————————————
版权声明:本文为CSDN博主「LoveMIss-Y」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27825451/java/article/details/81630839

最新文章

  1. EasyUI Datagrid Datetime(EasyUI DataGrid 时间格式化)
  2. Android 内存分析
  3. Java中的定时调度
  4. HTTP报文
  5. IP Address 分类: POJ 2015-06-12 19:34 12人阅读 评论(0) 收藏
  6. 平方和与立方和 AC 杭电
  7. post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?
  8. 循环语句(for,while,do……while),方法概述
  9. C#编程の泛型编程
  10. idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml,
  11. MySQL的随笔
  12. [Z] C#程序中设置全局代理(Global Proxy)
  13. 钉钉接口:获取accessToken和打卡记录【分享】
  14. Java中equals()和“==”区别
  15. Atitti mybatis的单元测试attilax总结
  16. windows下特殊字符无法用来命名
  17. smarty详细使用教程(韩顺平smarty模板技术笔记)
  18. Html中 <tr> 标签的隐藏与显示
  19. Xcode - 插件管理工具Alcatraz
  20. 样式 bootstrap purecss Amaze UI 推荐

热门文章

  1. 构建操作mysql的类
  2. MyBatis 实体类属性与表字段不一致
  3. 【Spring注解驱动开发】在@Import注解中使用ImportBeanDefinitionRegistrar向容器中注册bean
  4. Eclipse设置断点无效、无法拦截请求进行Debug调试
  5. [问题解决]coding时修改代码键入前边后边的自动删除
  6. cb34a_c++_STL_算法_查找算法_(7)_lower_bound
  7. 学习Linux必须掌握的一个知识-i节点
  8. @PathVariable @RequestParam@RequestBody
  9. 黎活明8天快速掌握android视频教程--21_监听ContentProvider中数据的变化
  10. 03.基于测试开发讲解和Cobertura框架介绍