前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Matplotlib可视化指导手册

Matplotlib可视化指导手册

作者头像
星星在线
发布2020-05-22 15:04:13
1.3K0
发布2020-05-22 15:04:13
举报

matplotlib 安装配置

linux可以通过以下方式安装matplotlib

代码语言:javascript
复制
sudo pip install numpy
sudo pip install scipy
sudo pip install matplotlib

windows墙裂推荐大家使用anaconda

可视化图的基本结构

通常,使用 numpy 组织数据, 使用 matplotlib API 进行数据图像绘制。一幅数据图基本上包括如下结构:

  • Data: 数据区,包括数据点、描绘形状
  • Axis: 坐标轴,包括 X 轴、 Y 轴及其标签、刻度尺及其标签
  • Title: 标题,数据图的描述
  • Legend: 图例,区分图中包含的多种曲线或不同分类的数据

其他的还有图形文本 (Text)、注解 (Annotate)等其他描述

绘图流程

下面以常规图为例,详细记录作图流程及技巧。按照绘图结构,可将数据图的绘制分为如下几个步骤:

  • 导入 matplotlib 包相关工具包
  • 准备数据,numpy 数组存储
  • 绘制原始曲线
  • 配置标题、坐标轴、刻度、图例
  • 添加文字说明、注解
  • 显示、保存绘图结果

下面是一个包含cos、sin、sqrt函数的完整图像:

  • 导入库
代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
  • 导入数据
代码语言:javascript
复制
x = np.arange(0., 10, 0.2)
y1 = np.cos(x)
y2 = np.sin(x)
y3 = np.sqrt(x)
  • 绘制基本曲线

使用 plot 函数直接绘制上述函数曲线,可以通过配置 plot 函数参数调整曲线的样式、粗细、颜色、标记等:

代码语言:javascript
复制
plt.plot(x, y1, color='blue', linewidth=1.5, linestyle='-', marker='.')
plt.plot(x, y2, color='green', linewidth=1.5, linestyle='-', marker='*')
plt.plot(x, y3, color='m', linewidth=1.5, linestyle='-', marker='x')
  • 设置坐标
代码语言:javascript
复制
# 坐标轴上移
ax = plt.subplot(111)
ax.spines['right'].set_color('none')  # 去掉右边的边框线
ax.spines['top'].set_color('none')  # 去掉上边的边框线

# 移动下边边框线,相当于移动 X 轴
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))

# 移动左边边框线,相当于移动 y 轴
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))
  • 设置坐标轴取值范围
代码语言:javascript
复制
# 设置 x, y 轴的取值范围
plt.xlim(x.min() * 1.1, x.max() * 1.1)
plt.ylim(-1.5, 4.0)

# 设置 x, y 轴的刻度值
plt.xticks([2, 4, 6, 8, 10], [r'2', r'4', r'6', r'8', r'10'])
plt.yticks([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0],
           [r'-1.0', r'0.0', r'1.0', r'2.0', r'3.0', r'4.0'])
  • 设置标题和轴标签
代码语言:javascript
复制
# 设置标题、x轴、y轴
plt.title(r'$the \ function \ figure \ of \ cos(), \ sin() \ and \ sqrt()$', fontsize=19)
plt.xlabel(r'$the \ input \ value \ of \ x$', fontsize=18, labelpad=88.8)
plt.ylabel(r'$y = f(x)$', fontsize=18, labelpad=12.5)
  • 设置文字描述、注解
代码语言:javascript
复制
# 添加文字
plt.text(4, 1.68, r'$x \in [0.0, \ 10.0]$', color='k', fontsize=15)
plt.text(4, 1.38, r'$y \in [-1.0, \ 4.0]$', color='k', fontsize=15)

# 特殊点添加注解
plt.scatter([8, ], [np.sqrt(8), ], 50, color='m')  # 使用散点图放大当前点
plt.annotate(r'$2\sqrt{2}$', xy=(8, np.sqrt(8)), xytext=(8.5, 2.2), fontsize=16, color='#090909',
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=0.1', color='#090909'))
  • 增加图例
代码语言:javascript
复制
# 设置图例及位置
plt.legend(loc='upper left')
plt.legend(['cos(x)', 'sin(x)', 'sqrt(x)'], loc='upper left')
  • 显示网格线
代码语言:javascript
复制
# 显示网格线
plt.grid(True)
  • 保存/显示图像
代码语言:javascript
复制
# 保存图片
plt.savefig('foo.png')

# 显示绘图
plt.show()

plt.plot(x, y1, color='blue', linewidth=1.5, linestyle='-', marker='.')

  • 颜色参数color

主要是color参数:r 红色、g 绿色、b 蓝色、c cyan、m 紫色、y 土黄色、k 黑色、w 白色

  • 线条类型参数linestyle

linestyle 参数主要包含虚线、点化虚线、粗虚线、实线

  • 标记参数marker

marker参数设定在曲线上标记的特殊符号,以区分不同的线段。常见的形状及表示符号如下图所示:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python爬虫实战之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 可视化图的基本结构
  • 绘图流程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档