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.xlabelpyplot.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.arraynumpy.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函数来绘图

最新文章

  1. Apache Shiro系列之五,概述 —— 配置
  2. apche配置后报错(Forbidden)没有权限
  3. 那些年我们写过的T-SQL(下篇)
  4. SYN攻击TIME_WAIT防御。
  5. “通过jumpserver远程登录linux服务器,rz上传文件速度过慢”问题的解决
  6. 使用opencv显示视频的方法
  7. (转)phoneGap-Android开发环境搭建
  8. 套接字I/O模型-select
  9. C#垃圾回收机制
  10. ASP.NET用HttpListener实现文件断点续传
  11. 分享8款精美的jQuery图片播放插件
  12. Uber 司机有话说:你以为当个 Uber 司机很轻松?大错特错!
  13. 通向架构师的道路之 Tomcat 性能调优
  14. Android View的绘制过程
  15. netcore log4相关
  16. 【ML】ICLR2016_Delving Deeper into Convolutional Networks
  17. easyui---tree异步加载
  18. L293 给地球降温
  19. opengl 入门浅学(一)
  20. iOS程序执行顺序 AppDelegate及 UIViewController 的生命周期

热门文章

  1. FlinkSQL之Windowing TVF
  2. ARM TrustZone白皮书部分阅读
  3. 论文笔记 - GRAD-MATCH: A Gradient Matching Based Data Subset Selection For Efficient Learning
  4. C# 多线程访问之 SemaphoreSlim(信号量)【C# 进阶】
  5. threejs三维地图大屏项目分享
  6. Day06:运算符详解
  7. java判断手机号三大运营商归属的工具类
  8. Revit2021保姆级安装教程
  9. windows安装wsl,在windows中使用ubuntu
  10. Ubuntu 20.04 开启root权限登陆、网卡配置