Matplotlib初相识

matplotlib

  • Matplotlib是一个Python 2D绘图库,能够以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形,用来绘制各种静态,动态,交互式的图表。

  • Matplotlib可用于Python脚本,Python和IPython Shell、Jupyter notebook,Web应用程序服务器和各种图形用户界面工具包等。

  • Matplotlib是Python数据可视化库中的泰斗,它已经成为python中公认的数据可视化工具,我们所熟知的pandas和seaborn的绘图接口其实也是基于matplotlib所作的高级封装。

例子

Matplotlib的图像是画在figure(如windows,jupyter窗体)上的,每一个figure又包含了一个或多个axes(一个可以指定坐标系的子区域)。最简单的创建figure以及axes的方式是通过pyplot.subplots命令,创建axes以后,可以使用Axes.plot绘制最简易的折线图。

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
fig, ax = plt.subplots()  # 创建一个包含一个axes的figure,plt.subplots(1,2) 创建一行两列的figure
ax.plot([1, 2, 3, 4], [1, 4, 2, 3]);  # 绘制图像

在这里插入图片描述
可简化为

line =plt.plot([1, 2, 3, 4], [1, 4, 2, 3]) 

figure的组成

  • Figure:顶层级,用来容纳所有绘图元素
  • Axes:matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成
  • Axis:axes的下属层级,用于处理所有和坐标轴,网格有关的元素
  • Tick:axis的下属层级,用来处理所有和刻度有关的元素
  • 在这里插入图片描述

两种接口绘图

  1. 显式的建立figure和axes
plt.rcParams['font.sans-serif'] = ['simhei']  # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
x = np.linspace(0,2,100)#创建一个数字序列
fig,ax = plt.subplots()#新建一个figure和一个axes
ax.plot(x,x,label = "linear")#画直线
ax.plot(x,x**2,label = "平方")
ax.plot(x,x**3,label = "立方")
ax.set_xlabel("x label")#设置横坐标名称
ax.set_ylabel("y label")#设置纵坐标名称
ax.set_title("例子")#设置标题
ax.legend()#设置图例
plt.show()

在这里插入图片描述

  1. 调用plt.plot()自动创建figure和axes
x = np.linspace(0, 2, 100)
plt.plot(x, x, label='linear') 
plt.plot(x, x**2, label='平方')  
plt.plot(x, x**3, label='立方')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
plt.show()

在这里插入图片描述

通用绘图模板

# step1 准备数据
x = np.linspace(0, 2, 100)
y = x**2

# step2 设置绘图样式,这一模块的扩展参考第五章进一步学习,这一步不是必须的,样式也可以在绘制图像是进行设置
mpl.rc('lines', linewidth=4, linestyle='-.')

# step3 定义布局, 这一模块的扩展参考第三章进一步学习
fig, ax = plt.subplots()  

# step4 绘制图像, 这一模块的扩展参考第二章进一步学习
ax.plot(x, y, label='linear')  

# step5 添加标签,文字和图例,这一模块的扩展参考第四章进一步学习
ax.set_xlabel('x label') 
ax.set_ylabel('y label') 
ax.set_title("Simple Plot")  
ax.legend() ;

在这里插入图片描述

思考题

  1. 两种绘图模式的优缺点和各自适合的使用场景
  • 第一种对matploylib绘图的过程有更加多的了解
  • 第二种方法可以缩短代码行数,更加简单
  1. pyplot绘图模式的简单模板
# step1 准备数据
x = np.linspace(0, 2, 100)
y = x**2




# step2 绘制图像, 这一模块的扩展参考第二章进一步学习
plt.plot(x, y, label='linear',linewidth = 4 ,linestyle = "-.")  
'''
'-'  solid line style
'--' dashed line style
'-.' dash-dot line style
':' dotted line style
'''

# step3添加标签,文字和图例,这一模块的扩展参考第四章进一步学习
plt.xlabel('x label') 
plt.ylabel('y label') 
plt.title("Simple Plot")  
plt.legend()
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值