matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)


Posted in Python onJanuary 05, 2021

1、plt.rcParams

plt(matplotlib.pyplot)使用rc配置文件来自定义图形的各种默认属性,称之为“rc配置”或“rc参数”。
通过rc参数可以修改默认的属性,包括窗体大小、每英寸的点数、线条宽度、颜色、样式、坐标轴、坐标和网络属性、文本、字体等。rc参数存储在字典变量中,通过字典的方式进行访问。

matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)

代码:

import numpy as np
import matplotlib.pyplot as plt
###%matplotlib inline  #jupyter可以用,这样就不用plt.show()
 
#生成数据
x = np.linspace(0, 4*np.pi)
y = np.sin(x)
#设置rc参数显示中文标题
#设置字体为SimHei显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#设置正常显示字符
plt.rcParams['axes.unicode_minus'] = False
plt.title('sin曲线')
#设置线条样式
plt.rcParams['lines.linestyle'] = '-.'
#设置线条宽度
plt.rcParams['lines.linewidth'] = 3
#绘制sin曲线
plt.plot(x, y, label='$sin(x)$')
 
plt.savefig('sin.png')
plt.show()

matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)

参数:

plt.rcParams['savefig.dpi'] = 300 #图片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
plt.savefig(‘plot123_2.png', dpi=200)#指定分辨率
# 默认的像素:[6.0,4.0],分辨率为100,图片尺寸为 600&400
# 指定dpi=200,图片尺寸为 1200*800
# 指定dpi=300,图片尺寸为 1800*1200
 
 
plt.rcParams['figure.figsize'] = (8.0, 4.0)    # 图像显示大小
plt.rcParams['image.interpolation'] = 'nearest' # 最近邻差值: 像素为正方形
#Interpolation/resampling即插值,是一种图像处理方法,它可以为数码图像增加或减少象素的数目。
 
plt.rcParams['image.cmap'] = 'gray' # 使用灰度输出而不是彩色输出
 
plt.axis('off')  #打印图片的时候不显示坐标轴

from:https://3water.com/article/203481.htm

更详细的配置参见:https://my.oschina.net/swuly302/blog/94805

2、matshow函数

这是一个绘制矩阵的函数:matplotlib.pyplot.matshow(Afignum=None**kwargs)

A是绘制的矩阵,一个矩阵元素对应一个图像像素。

例如:plt.matshow(Mat,  cmap=plt.cm.gray),cmap代表一种颜色映射方式。

 matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)

实例:

plt.plot(A, "r-+", linewidth=2, label="train")
  plt.plot(B, "b-", linewidth=3, label="val")
  plt.legend(loc="upper right", fontsize=14)  # 设置位置
  plt.xlabel("Training set size", fontsize=14) # 标签
  plt.ylabel("RMSE", fontsize=14) 
plt.axis([0, 80, 0, 3])#表示要显示图形的范围
plt.xticks(np.arange(0, 81, step=20))#设置刻度
plt.yticks(np.arange(0, 4, step=1))

matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)

Axes - Subplot - Axis 之间到底是个什么关系

用matplotlib.pyplot绘图需要知道以下几个概念:

  • 画图板/画布:这是一个基础载体,类似实际的画图板,用pyplot.figure()函数创建,程序中允许创建多个画图板,具体操作的画板遵循就近原则(操作是在最近一次调用的画图板上实现),缺省条件下内部默认调用pyplot.figure(1)。
  • 图形区/绘图区:用来绘图的实际区域,一般不直接获取,直接设定方式为pyplot.axes([x, y, w, h]),即axes函数直接确定了该区域在画图板/画布中的位置为x,y 尺寸为w,h
  • 标签区:用来展示图形相关标签的地方,一般不直接设定(未仔细研究过),该区域根据图形区进行扩展,与该区域有关联的函数是pyplot.xlabel()、pyplot.ylabel()、pyplot.title()等
fig = plt.figure() 
plt.show()
 
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)

用画板和画纸来做比喻的话,figure就好像是画板,是画纸的载体, 但是具体画画等操作是在画纸上完成的。 在pyplot中,画纸的概念对应的就是Axes/Subplot。

matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)

对比:

figure (1) VS figure()
      figure()操作就是创建或者调用画图板,缺省情况下系统会创建figure(1)作为画图板。使用时遵循就近原则,所有画图操作是在最近一次调用的画图板上实现。

axes() VS subplot()
      pyplot.axes([x, y, w, h])是用来在画图板上确认图形区的位置和大小的函数,x,y表示图形区左下角相对于画图板的坐标,w,h表示图形区的宽高。(缺省时该操作在figure(1)上操作)

      pyplot.subplot(abc)本质也是用来确认图形区在画图板上位置大小的函数,区别是该函数将画图板按a行b列等分,然后逐行编号,并选择编号为c的区域作为图形区用来绘图。这是一个axes()操作的高级封装,方便用户使用。subplot(233)表示2行3列的第3个位置(即,第1行第三个区域)

同时,pyplot.show()实际展示的区域是画图板上所有图形区的最小包围区,不是整个画图板,即如果仅仅调用了subplot(224)结果只展示右下角的4号区域,而不是1、2、3、4都展示,因此会存在一定的错觉。

axes() VS axis()
       axes([x, y, w, h])用来设定图形区;

       axis([x_left, x_right, y_bottom, y_top])是用来设置所绘制图形的视窗大小的,表示直接展示的图形是需要满足参数中范围的值,直观表现是绘图区实际展示的坐标范围。

注:axis作用的图形区依旧遵守就近原则。

subplot() VS plot()
       subplot用来生成图形区;

       plot是实际使用的绘图函数,类似的函数还有hist等,plot操作遵守就近原则,即作用在最近一次使用的图形区上。

官网:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html

到此这篇关于matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)的文章就介绍到这了,更多相关matplotlib plt.rcParams、matshow内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
讲解Python中if语句的嵌套用法
May 14 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
Django实现的自定义访问日志模块示例
Jun 23 Python
django中send_mail功能实现详解
Feb 06 Python
python处理数据,存进hive表的方法
Jul 04 Python
python 字典中文key处理,读取,比较方法
Jul 06 Python
python批量获取html内body内容的实例
Jan 02 Python
Python中整数的缓存机制讲解
Feb 16 Python
python实现tail -f 功能
Jan 17 Python
Python Numpy中数据的常用保存与读取方法
Apr 01 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
关于的python五子棋的算法
May 02 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 #Python
matplotlib制作雷达图报错ValueError的实现
Jan 05 #Python
python实现三种随机请求头方式
Jan 05 #Python
scrapy实践之翻页爬取的实现
Jan 05 #Python
python里glob模块知识点总结
Jan 05 #Python
python用opencv 图像傅里叶变换
Jan 04 #Python
python基于opencv 实现图像时钟
Jan 04 #Python
You might like
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
joomla组件开发入门教程
2016/05/04 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Python实现感知机(PLA)算法
2017/12/20 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
python搜索算法原理及实例讲解
2020/11/18 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
ECHT官方网站:男女健身服
2020/02/14 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
技术学校毕业生求职信分享
2013/12/02 职场文书
冬季安全检查方案
2014/05/23 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs