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 合并文件的具体实例
Aug 08 Python
Python中文件操作简明介绍
Apr 13 Python
python开发之基于thread线程搜索本地文件的方法
Nov 11 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
使用python3构建文件传输的方法
Feb 13 Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
nginx+uwsgi+django环境搭建的方法步骤
Nov 25 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
用python实现一个简单的验证码
Dec 09 Python
python中的对数log函数表示及用法
Dec 09 Python
Python各协议下socket黏包问题原理
Apr 12 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
IStream与TStream之间的相互转换
2008/08/01 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
php中in_array函数用法分析
2014/11/15 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
JScript的条件编译
2007/05/29 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
Python中逗号的三种作用实例分析
2015/06/08 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
浅析python中while循环和for循环
2019/11/19 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
门卫岗位职责
2013/11/15 职场文书
区域销售经理职责
2013/12/22 职场文书
计算机专业毕业生自我鉴定
2014/01/16 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
跑吧孩子观后感
2015/06/10 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js