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当中的数据类型和变量
Apr 25 Python
Python修改MP3文件的方法
Jun 15 Python
分析用Python脚本关闭文件操作的机制
Jun 28 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
Apr 27 Python
Python日志模块logging基本用法分析
Aug 23 Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 Python
python同步两个文件夹下的内容
Aug 29 Python
Pytorch: 自定义网络层实例
Jan 07 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
Python爬取微信小程序Charles实现过程图解
Sep 29 Python
python中添加模块导入路径的方法
Feb 03 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脚本的10个技巧(3)
2006/10/09 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
修改发贴的编辑功能
2007/03/07 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
2011/07/26 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
javascript中this关键字详解
2016/12/12 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
深入解析Python中的线程同步方法
2016/06/14 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
简单了解python PEP的一些知识
2019/07/13 Python
Python多线程正确用法实例解析
2020/05/30 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
欧洲著名的二手奢侈品网站:Vestiaire Collective
2020/03/07 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
岳庙导游词
2015/02/04 职场文书
刮痧观后感
2015/06/05 职场文书
高二数学教学反思
2016/02/18 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python