python matplotlib中的subplot函数使用详解


Posted in Python onJanuary 19, 2020

python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包。基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数。于是,为了节省时间,可以一劳永逸。我把常用函数作了一个总结,最后写了一个例子,以后基本不用怎么改了。

一、作图流程:

1.准备数据, , 3作图, 4定制, 5保存, 6显示

1.数据可以是numpy数组,也可以是list

2创建画布:

import matplotlib.pyplot as plt
#figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
 
#num:图像编号或名称,数字为编号 ,字符串为名称
#figsize:指定figure的宽和高,单位为英寸;
#dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 ,1英寸等于2.5cm,A4纸是 21*30cm的纸张 
#facecolor:背景颜色
#edgecolor:边框颜色
#frameon:是否显示边
 
fig = plt.figure()
fig = plt.figure(figsize=(8,6), dpi=80) 
 
fig.add_axes()
fig, axes = plt.subplos(nrows = 2, ncols = 2) #axes是长度为4的列表

3、作图路线

一维数据:

axes[0, 0].plot(x, y)
axes[0,1].bar([1,2,3], [2,4,8])
axes[0,2].barh([1,2,3], [2,4,8])
axes[1,0].axhline(0.45)
axes[1, 1].scatter(x, y)
axes[1,2].axvline(0.65)
axes[2,0].fill(x,y, color = 'blue')
axes[2,1].fill_between(x,y, color = 'blue')
axes[2,2].violinplot(y)
axes[0,3].arrow(0,0,0.5,0.5)
axes[1,3].quiver(x,y)

4, 定制

plt.plot(x,y, alpha=0.4, c = 'blue', maker = 'o')
#颜色,标记,透明度
 
# 显示数学文本
 
t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)
 
plt.plot(t,s)
plt.title(r'$\alpha_i > \beta_i$', fontsize=20)
plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20)
plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$',
     fontsize=20)
plt.xlabel('time (s)')
plt.ylabel('volts (mV)')
 
fig = plt.figure()
fig.suptitle('bold figure suptitle', fontsize=14, fontweight='bold')
 
ax = fig.add_subplot(111)
fig.subplots_adjust(top=0.85)
ax.set_title('axes title')
 
ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')
 
ax.text(3, 8, 'boxed italics text in data coords', style='italic',
    bbox={'facecolor':'red', 'alpha':0.5, 'pad':10})
 
ax.text(2, 6, r'an equation: $E=mc^2$', fontsize=15)
 
ax.text(3, 2, u'unicode: Institut f\374r Festk\366rperphysik')
 
ax.text(0.95, 0.01, 'colored text in axes coords',
    verticalalignment='bottom', horizontalalignment='right',
    transform=ax.transAxes,
    color='green', fontsize=15)
 
 
ax.plot([2], [1], 'o')
 
 
# 注释
ax.annotate('我是注释啦', xy=(2, 1), xytext=(3, 4),color='r',size=15,
      arrowprops=dict(facecolor='g', shrink=0.05))
 
ax.axis([0, 10, 0, 10])

python matplotlib中的subplot函数使用详解

5, 保存显示

plt.savefig("1.png")
plt.savefig("1.png", trainsparent =True)
plt.show()

二、部分函数使用详解:

1, fig.add_subplot(numrows, numcols, fignum) ####三个参数,分别代表子图的行数,列数,图索引号。 eg: ax = fig.add_subplot(2, 3, 1) (or ,ax = fig.add_subplot(231))

2, plt.subplots()使用

x = np.linspace(0, 2*np.pi,400)
y = np.sin(x**2)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')
 
# Creates two subplots and unpacks the output array immediately 
#fig = plt.figure(figsize=(6,6))
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)
 
# Creates four polar axes, and accesses them through the returned array
fig, axes = plt.subplots(2, 2, subplot_kw=dict(polar=True))
axes[0, 0].plot(x, y)
axes[1, 1].scatter(x, y)
 
# Share a X axis with each column of subplots
plt.subplots(2, 2, sharex='col')
 
# Share a Y axis with each row of subplots
plt.subplots(2, 2, sharey='row')
 
# Share both X and Y axes with all subplots
plt.subplots(2, 2, sharex='all', sharey='all')
 
# Note that this is the same as
plt.subplots(2, 2, sharex=True, sharey=True)
 
# Creates figure number 10 with a single subplot
# and clears it if it already exists.
fig, ax=plt.subplots(num=10, clear=True)

3.plt.legend()

plt.legend(loc='String or Number', bbox_to_anchor=(num1, num2))
plt.legend(loc='upper center', bbox_to_anchor (0.6,0.95),ncol=3,fancybox=True,shadow=True)
#bbox_to_anchor被赋予的二元组中,第一个数值用于控制legend的左右移动,值越大越向右边移动,第二个数值用于控制legend的上下移动,值越大,越向上移动

python matplotlib中的subplot函数使用详解

以上这篇python matplotlib中的subplot函数使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中print的不换行即时输出的快速解决方法
Jul 20 Python
Python基于百度AI的文字识别的示例
Apr 21 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
python学生管理系统
Jan 30 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
python 函数中的参数类型
Feb 11 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
django form和field具体方法和属性说明
Jul 09 Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 Python
jupyter notebook指定启动目录的方法
Mar 02 Python
使用Python webdriver图书馆抢座自动预约的正确方法
Mar 04 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 #Python
Python实现序列化及csv文件读取
Jan 19 #Python
使用python turtle画高达
Jan 19 #Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 #Python
python实现五子棋游戏(pygame版)
Jan 19 #Python
Python turtle画图库&&画姓名实例
Jan 19 #Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 #Python
You might like
php 定义404页面的实现代码
2012/11/19 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python实现端口复用实例代码
2014/07/03 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Python实现多属性排序的方法
2018/12/05 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
Python定义一个Actor任务
2020/07/29 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
交通安全寄语大全
2014/04/08 职场文书
公司领导班子对照材料
2014/08/18 职场文书
重点工程汇报材料
2014/08/27 职场文书
2014最新离职证明范本
2014/09/12 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript