Python模块 Matplotlib的基本用法

本文详细介绍了Python的Matplotlib库,包括Figure和Axes对象的创建,多轴设置,以及基本的2D绘图,如线图、散点图、条形图、直方图、箱形图、泡泡图和等高线图。此外,还涵盖了布局、图例、边界等元素的调整,帮助开发者掌握Matplotlib的全面用法。
摘要由CSDN通过智能技术生成

目录

1. 认识Matploblib

1.1 Figure

1.2 Axes

1.3 Multiple Axes

1.4 Axes Vs .pyplot

2. 基本绘图2D

2.1 线

2.2 散点图

2.3 条形图

2.4 直方图

2.6 箱形图

2.7 泡泡图

2.8 等高线(轮廓图)

3 布局、图例说明、边界等

3.1区间上下限

3.2 图例说明

3.3 区间分段

3.4 布局

3.5 轴相关


Matplotlib 是Python中类似 MATLAB 的绘图工具,熟悉 MATLAB 也可以很快的上手 Matplotlib。

1. 认识Matploblib

1.1 Figure

在任何绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画板才能开始绘图。

import matplotlib.pyplot as plt
fig=plt.figure(edgecolor="B",facecolor='r',figsize=(10,8))
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
  • num: 图像编号或名称,字符串为名称
  • figsize: 指定figure的宽和高,单位为英寸;
  • dpi:参数指定绘图对象的分辨率,默认值为80
  • facecolor:背景颜色
  • edgecolor:边框颜色
  • frameon:是否显示边框 

1.2 Axes

在拥有Figure对象之后,在作画前我们还需要轴,没有轴的话就没有绘图基准,所以需要添加Axes。也可以理解成为真正可以作画的纸。

fig=plt.figure()
ax=fig.add_subplot(111)
ax.set(xlim=[0.5,4.5],ylim=[-2,8]
       ,title='An Example Axes' #标题
       ,ylabel='Y-Axis'  #Y轴的名称
       ,xlabel='X-Axis'  #Y轴的名称
      )
plt.show()

上的代码,在一幅图上添加了一个Axes,然后设置了这个Axes的X轴以及Y轴的取值范围(这些设置并不是强制的,后面会再谈到关于这些设置),效果如下图:

对于上面的fig.add_subplot(111)就是添加Axes的,参数的解释的在画板的第1行第1列的第一个位置生成一个Axes对象来准备作画。也可以通过fig.add_subplot(2, 2, 1)的方式生成Axes,前面两个参数确定了面板的划分,例如 2, 2会将整个面板划分成 2 * 2 的方格,第三个参数取值范围是 [1, 2*2] 表示第几个Axes。如下面的例子:

fig=plt.figure(figsize=(10,8))  #设置大小为10*8的画布
ax1=fig.add_subplot(221)
ax1.set(title='221')
ax2=fig.add_subplot(222)
ax2.set(title='222')
ax3=fig.add_subplot(223)
ax3.set(title='223')
ax4=fig.add_subplot(224)
ax4.set(title='224')

1.3 Multiple Axes

可以发现我们上面添加 Axes 似乎有点弱鸡,所以提供了下面的方式一次性生成所有 Axes:

def subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,
             subplot_kw=None, gridspec_kw=None, **fig_kw):

subplots参数

nrows,ncols:子图的行列数。
sharex, sharey

  • 设置为 True 或者 ‘all’ 时,所有子图共享 x 轴或者 y 轴,
  • 设置为 False or ‘none’ 时,所有子图的 x,y 轴均为独立,
  • 设置为 ‘row’ 时,每一行的子图会共享 x 或者 y 轴,
  • 设置为 ‘col’ 时,每一列的子图会共享 x 或者 y 轴。

squeeze

  • 默认为 True,是设置返回的子图对象的数组格式。
  • 当为 False 时,不论返回的子图是只有一个还是只有一行,都会用二维数组格式返回他的对象。
  • 当为 True 时,如果设置的子图是(nrows=ncols=1),即子图只有一个,则返回的子图对象是一个标量的形式,如果子图有(N×1)或者(1×N)个,则返回的子图对象是一个一维数组的格式,如果是(N×M)则是返回二位格式。

subplot_kw:字典格式,传递给 add_subplot() ,用于创建子图。
gridspec_kw

  • 字典格式,传递给 GridSpec 的构造函数,用于创建子图所摆放的网格。
  • class matplotlib.gridspec.GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None)
  • 如,设置 gridspec_kw={'height_ratios': [3, 1]} 则子图在列上的分布比例是3比1。

**fig_kw :

  • 所有其他关键字参数都传递给 figure()调用。
  • 如,设置 figsize=(21, 12) ,则设置了图像大小。
fig,axes=plt.subplots(2,2,figsize=(10,8))
axes[0,0].set(title='Upper Left')
axes[0,1].set(title='Upper Right')
axes[1,0].set(title='Lower Left')
axes[1,1].set(title='Lower Right')

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值