Python 绘图 Matplotlib 快速参考手册
http://www.labri.fr/perso/nrougier/teaching/matplotlib/#quick-references
1 作图函数
1.1 默认参数作图
import numpy as np#导入numpy库
import matplotlib.pyplot as plt#导入matplotlib库
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)#生成-π到+π的256个元素的等差数列
C,S = np.cos(X), np.sin(X)#生成x的正弦余弦函数并赋值给C,S
plt.plot(X,C)#画出x与C的图像
plt.plot(X,S)#画出x与S的图像
plt.show()#展示图像
1.2 改变颜色和线宽
...
plt.figure(figsize=(10,6), dpi=80)#设置图表的宽高比为10:6,设置dpi为80
plt.plot(X, C, color="blue", linewidth=2.5, linestyle="-")#设置余弦函数颜色为蓝色,线宽2.5,样式为连线
plt.plot(X, S, color="red", linewidth=2.5, linestyle="-")
...
1.3 改变坐标轴刻度
...
plt.xlim(X.min()*1.1, X.max()*1.1)#x坐标轴最小值、最大值分别设置为X最小值和最大值的1.1
plt.ylim(C.min()*1.1, C.max()*1.1)#y坐标轴最小值、最大值分别设置为X最小值和最大值的1.1
...
1.4 改变坐标轴刻度显示
...
plt.xticks( [-np.pi, -np.pi/2, 0, np.pi/2, np.pi])#显示+-π,+-π/2的刻度
plt.yticks([-1, 0, +1])#显示+-1,0的刻度
...
...
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])#设置将刻度映射为具体标签plt.yticks([-1, 0, +1],[r'$-1$', r'$0$', r'$+1$'])#设置将刻度映射为具体标签
...
1.5 移动坐标轴
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
1.6 增加图例
...
plt.plot(X, C, color="blue", linewidth=2.5, linestyle="-", label="cosine")
plt.plot(X, S, color="red", linewidth=2.5, linestyle="-", label="sine")
plt.legend(loc='upper left', frameon=False)
...
1.7 标记特殊点
...
t = 2*np.pi/3#设置标记点为2/3π
plt.plot([t,t],[0,np.cos(t)], color ='blue', linewidth=1.5, linestyle="--")#plot横纵坐标参数都是列表,可以画出面积图,这里画出的是一条竖线
plt.scatter([t,],[np.cos(t),], 50, color ='blue')#标记出点
plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',xy=(t, np.sin(t)), xycoords='data',xytext=(-100, -40), textcoords='offset points', fontsize=16,arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))#标注,第一个参数是标注的内容,第二个参数是标注的点,第三个参数是坐标,第四个参数是注释的位移,第五个参数是注释坐标,第六个参数是箭头样式的设置,第七个参数是连接的样式
plt.plot([t,t],[0,np.sin(t)], color ='red', linewidth=1.5, linestyle="--")
plt.scatter([t,],[np.sin(t),], 50, color ='red')plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',xy=(t, np.cos(t)), xycoords='data',xytext=(-90, -50), textcoords='offset points', fontsize=16,arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
...
2 参数详细设置
2.1 窗口设置(fig)
参数 | 默认值 | 描述 |
num | 1 | 作图窗口的个数 |
figsize | figure.figsize | 宽高,单位英寸 |
dpi | figure.dpi | 分辨率 |
facecolor | figure.facecolor | 背景颜色 |
edgecolor | figure.edgecolor | 框线颜色 |
frameon | TRUE | 是否显示框线 |
2.2.1 子图绘制(subplot)
你可以将一个画面分割成若干区域,然后分别在各个区域作画。你需要指明画面的行数和列数和作图的区域的数字代码(一般以横向排列)
2.2.2 比例子绘图(Axes)
类似于subplots,但是Axes允许将图片摆放在画板的任意位置。如果我们需要把一个小图放在一个大图的里面的话,就要选择Axes。
2.3 刻度(Tick)
Matplotlib提供给了一个刻度的配置系统。刻度定位器可以设置哪些地方的刻度可以出现,还可以设置刻度的格式。
2.4 动画制作(Animation)
在matplotlib上进行动画制作一直是非常困难的事情。但是,自从1.1版本之后,动画制作就变得简单和直观了。
一个简单的雨滴效果图可以通过随机分布的环形获得,当然,它的大小是随着时间的变化而变化的。为了模仿这些,我们可以使用越来越透明的颜色来表示环形的增长。当环形增长到最大的时候,我们就可以去除这些环形,再从新建立起新的环形。
第一步,建立空的画板
# New figure with white background
fig = plt.figure(figsize=(6,6), facecolor='white')
# New axis over the whole figure, no frame and a 1:1 aspect ratio
ax = fig.add_axes([0,0,1,1], frameon=False, aspect=1)
第二步,创建一些环形。我们可以使用散点图,并去除填充颜色。同样的我们需要设置初始的大小和颜色。
# 环形的数量和大小
n = 50
size_min = 50
size_max = 50*50
# 环形的坐标
P = np.random.uniform(0,1,(n,2))
# 环形的颜色
C = np.ones((n,4)) * (0,0,0,1)
# alpha颜色通道从 0 (透明) to 1 (不透明)
C[:,3] = np.linspace(0,1,n)
# 环形的大小
S = np.linspace(size_min, size_max, n)
# 散点作图
scat = ax.scatter(P[:,0], P[:,1], s=S, lw = 0.5,edgecolors = C, facecolors='None')# 确定坐标轴是(0,1),去除刻度标签
ax.set_xlim(0,1), ax.set_xticks([])
ax.set_ylim(0,1), ax.set_yticks([])
现在我们需要为我们的动画写更新函数,我们知道每一个环形需要变大,变透明,最后消失。当然,我们不是真正的去除这些环形,而是把它分配到另外的随机的地点。
def update(frame):global P, C, S# 每一个环形都变得更加的透明C[:,3] = np.maximum(0, C[:,3] - 1.0/n)# 每一个环形都变得更加大S += (size_max - size_min) / n# 从新设置环形i = frame % 50P[i] = np.random.uniform(0,1,2)S[i] = size_minC[i,3] = 1# 更新散点对象scat.set_edgecolors(C)scat.set_sizes(S)scat.set_offsets(P)# 返回更新之后的对象return scat,
第三步,设置这个函数作为更新函数
animation = FuncAnimation(fig, update, interval=10, blit=True, frames=200)
# animation.save('rain.gif', writer='imagemagick', fps=30, dpi=40)
plt.show()
3.保存图片
3.1 保存为普通图片文件
3.2 保存为交互式图片文件
保存交互式图片页面
import matplotlib.pyplot as plt
import pickle as pl
#调用matplotlib的figure对象
fig = plt.figure()
x = [1,2,3,4,5]
y = [1,2,3,4,5]
plt.plot(x,y)
#序列化figure对象,并保存
pl.dump(fig,open('C:/Users/Administrator/Desktop/fig.pickle','wb'))
读取交互式页面:
import matplotlib.pyplot as plt
import pickle as pl
# 载入序列化文件
fig = pl.load(open('C:/Users/Administrator/Desktop/fig.pickle','rb'))
plt.show()
# 获得图片信息
print(fig.axes[0].lines[0].get_data())
原文链接:
http://www.labri.fr/perso/nrougier/teaching/matplotlib/#introduction
Python 绘图 Matplotlib 快速参考手册相关推荐
- 【0基础快速入门】Python学习快速参考手册
Python学习快速参考手册 目录 文章目录 Python学习快速参考手册 目录 @[toc] 下载 Python下载与配置 IDE下载与配置 第一章 · Python的基本语法 变量 数据类型 注释 ...
- Python绘图Matplotlib手册
Python绘图Matplotlib手册 作图函数 使用pip install matplotlib安装绘图库. 作图函数 (1)使用默认参数作图 import numpy as np import ...
- 嵌入式Linux图形系统快速参考手册
嵌入式Linux图形系统快速参考手册 (Embedded Linux Graphics Quick Reference Guide) 译自:http://www.linuxdevices.com/ 原 ...
- python绘图—— matplotlib
python绘图-- matplotlib 1.模块导入 2.折线图绘制 2.1 设置画布大小 2.2画图 2.3 设置显示中文 2.4 设置标题 2.5 设置图例 2.6 设置坐标轴刻度和刻度标签 ...
- python绘图-Matplotlib模块
1.matplotlib是什么? python底层的绘图工具,是一个 Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 通过 Matplotlib,开发者可以仅 ...
- 从0开始的Python学习001快速上手手册
假设大家已经安装好python的环境了. Windows检查是否可以运行python脚本 Ctrl+R 输入 cmd 在命令行中输入python 如果出现下面结果,我们就可以开始python的学习了. ...
- Swift快速参考手册
来源于国外的一个个人博客,Swift Cheat Sheet and Quick Reference 小结了Swift中常用的一些语法供大家参考,主要包括: 类的定义 方法 对象的创建与使用 定义变量 ...
- python pip download_Python Pip 参考手册 - pip download 命令
pip download 命令用于下载包 语法 pip download 命令的语法格式如下 pip [options] [package-index-options] ... 或 pip downl ...
- PAX1000 Quick Reference_快速参考
文章目录 1 一般信息 1.1安全 1.2 订购代码和配件 1.3 要求 2 入门 2.1 零件清单 2.2 安装软件 2.3 第一步 3 附录 3.1 认证与合规 3.2 保固 3.3 版权和可靠性 ...
最新文章
- VS2019配置库文件
- 快速排序的难点_数据结构考研重难点解析:快速排序
- 用996打败员工,用“奋斗”替代生活
- 【Java Web】Myeclipse下运用maven管理项目jar包
- 解决因删除外键引用的时候导致相应字段被删除了的问题
- CentOS 7 安装方式汇总
- SQL查询除了某一列的其他列
- 不属于python数据类型的是_Python不支持的数据类型有( )。
- LogSegment分析
- POJ 1094 拓扑排序
- win10计算机管理看不见蓝牙,解决win10蓝牙开关不见了的方法
- gooflow学习笔记
- ECharts数据可视化:入门、实战与进阶干货分享(GitHub 44.5k)
- 需求分析——系统建模方法
- “双一流”高校,整体搬迁!
- 山东大学计算机考研压分,很坑!考研院校:这些骚操作,你不得不防
- UltraISO刻录系统映象出现“此光盘不是空白光盘”
- 从数据库得到的结果集存放到List集合中
- VPP学习(二)VPP安装
- 《windows 程序设计》中的翻译错误----学习笔记
热门文章
- 简单循迹小车实验心得_智能循迹小车总结 智能循迹小车报告.doc
- Python一句话实现秦九韶算法快速计算多项式的值
- java支持闭包_JAVA 需要引入闭包吗
- java file.length 单位_Java.io.File.length()返回0
- qml入门学习(二):引入js文件
- 视觉SLAM——D435i运行ORB-SLAM3-mono(依赖ros版)
- python 面授_5天Python实战营(面授)
- linux es数据库 head,centos7安装Elasticsearch及Es-head插件详细教程(图文)
- leetcode刷题:相交链表
- iscsi:IO操作流程(二)