Matplotlib学习笔记1 - 上手制作一些图表吧!
Matplotlib学习笔记1 - 上手制作一些图表吧!
Matplotlib是一个面向Python的,专注于数据可视化的模块。
快速上手
这是使用频率最高的几个模块,在接下来的程序中,都需要把它们作为基础模块
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
第一个图表
使用pyplot.plot函数,可以在坐标轴上画一条曲线。
plt.plot([1,2,3,4],[2,1,3,4])
plt.show()
让图表变得更加可读
使用pyplot.xlabel与pyplot.ylabel可以给图表的x轴与y轴进行标注;使用pyplot.title给图表起一个标题。在这个例子中,分别绘制了两次曲线,分别标注为了'original'和'cos',使用pyplot.legend可以为图表增加一个图例。
# Generate some data
x=np.arange(0,10,0.2)
y=np.cos(x)
# Plot the figure
plt.plot(x,x,'r-',label='original')
plt.plot(x,y,'b-',label='cos')
# Some decoration
plt.xlabel('Enter a')
plt.ylabel('Enber b')
plt.title('My first chart')
plt.legend()
plt.show()
图表的组成部分
这是一个Matplotlib图表的组成示意图。
Figure: Figure囊括了整个图表(包括曲线啦~标题啦~坐标之类的),它有若干下属Axes子类
Axes:Axes是Figure的附属子类,包含了作图的区域。一般来说每个Axes会包含2个Axis类,在三维图中则含有3个。
绘制函数所支持的输入数据类型
并不是所有的数据都能顺利地被pyplot的绘制函数识别并绘成图表。一般来说函数支持numpy.array、numpy.ma.masked_array,或者可以被numpy.asarray转化(例如numpy.matrix)的数据类别。
Pyplot也支持通过一个“字典”来存储并运用数据,只需要在绘制函数中给出data关键字的参数,就可以通过字典的key,将字典中的数据导入绘制函数中。在下面的例子中,我们把各种变量存在'data'字典中,并通过下标来引用在在字典中的数据。
data = {'a': np.arange(50),
'c': np.random.randint(0, 50, 50),
'd': np.random.randn(50)}
data['b'] = data['a'] + 10 * np.random.randn(50)
data['d'] = np.abs(data['d']) * 100
fig, ax = plt.subplots(figsize=(5, 2.7), layout='constrained')
ax.scatter('a', 'b', c='c', s='d', data=data)
ax.set_xlabel('entry a')
ax.set_ylabel('entry b')
代码风格
显式交互与隐式交互
我们有两种不同的方式(或者说是两种不同的风格,因为本质上它们没有很大的区别)来与Matplotlib交互:
- 显式交互(Explicit interface)
显式地申明Figure与Axes变量,并通过它们调用函数(“面向对象” object-oriented 风格)
- 隐式交互(Implicit interface)
通过pyplot模块间接创建Figure和Axes,并用pyplot函数来绘图
最新文章
- Apache Shiro系列之五,概述 —— 配置
- apche配置后报错(Forbidden)没有权限
- 那些年我们写过的T-SQL(下篇)
- SYN攻击TIME_WAIT防御。
- “通过jumpserver远程登录linux服务器,rz上传文件速度过慢”问题的解决
- 使用opencv显示视频的方法
- (转)phoneGap-Android开发环境搭建
- 套接字I/O模型-select
- C#垃圾回收机制
- ASP.NET用HttpListener实现文件断点续传
- 分享8款精美的jQuery图片播放插件
- Uber 司机有话说:你以为当个 Uber 司机很轻松?大错特错!
- 通向架构师的道路之 Tomcat 性能调优
- Android View的绘制过程
- netcore log4相关
- 【ML】ICLR2016_Delving Deeper into Convolutional Networks
- easyui---tree异步加载
- L293 给地球降温
- opengl 入门浅学(一)
- iOS程序执行顺序 AppDelegate及 UIViewController 的生命周期
热门文章
- FlinkSQL之Windowing TVF
- ARM TrustZone白皮书部分阅读
- 论文笔记 - GRAD-MATCH: A Gradient Matching Based Data Subset Selection For Efficient Learning
- C# 多线程访问之 SemaphoreSlim(信号量)【C# 进阶】
- threejs三维地图大屏项目分享
- Day06:运算符详解
- java判断手机号三大运营商归属的工具类
- Revit2021保姆级安装教程
- windows安装wsl,在windows中使用ubuntu
- Ubuntu 20.04 开启root权限登陆、网卡配置