Skip to content

Matplotlib

Starslayerx edited this page Mar 20, 2021 · 19 revisions

本文档介绍Python中数据可视化,不仅仅包含Matplotlib这个库 Matplotlib

import matplotlib.pyplot as plt
%matplotlib inline    # %matplotlib widget 交互式

简单介绍

Matplotlib有四类基础类型的对象容器:Figure、Axes、Axis、Tick。figure即图片本身,负责图形大小、位置;Axes负责坐标轴位置、绘图;Axis负责坐标轴的设�置等;Tick负责格式化样式等。下面是Matplotlib figure的组成 matplotlib_figure

pyplot介绍

matplotlib绘制的图都位于figure对象中,可以使用figure方法生成一个新的图片

fig = plt.figure()

此时的图为一个空白图,可以在该图上添加一个或多个子图

  • 使用add_subplot添加子图
# 创建2*2个子图
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)

agg_subplot返回Axes Subplot对象,使用这些对象可以直接在子图上调用对象的方法进行绘图,若此时直接使用plt.plot进行绘图,则会在最后创建的子图上进行绘图。

ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.4)
ax2.scatter(np.arange(30), np.arange(30) + 3*np.random.randn(30))
plt.plot(np.random.randn(50).cumsum(), 'k--')    # 直接绘制在最后一个子图上

subfigures

  • subplots函数
    subplots函数可以绘制x*y个子图,返回一个figure对象和一个Axes对象:

    fig, axes = subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,subplot_kw=None, 
    gridspec_kw=None, **fig_kw)
    • fig为figure对象,可以用来保存图片使用`fig.savefig('name')
    • axes可以通过二维数组的方法来访问子图,例如axes[0,1]这样
    • nrows and ncols:行和列的个数。
    • sharex and sharey: 是否共享x y 轴。
    • subplot_kw: 传入add_subplot的关键字参数字典,用于生成子图。
    • **fig_kw:生成图片时使用的figure参数,如 figsize、facecolor等。
  • 调整子图间距

    subplots_adjust(left=None, bootm=None, right=None, top=None, wspace=None, hspce=None)
    • left: 子图左边缘的位置
    • right: 子图右边缘的位置
    • bottom: 子图底部边缘的位置
    • top: 子图顶端边缘的位置
    • wspace: 子图只之间的宽度
    • hspace: 每行子图之间padding的高度

    子图之间若出现遮挡,也可以使用tight_layout方法自动调整,也支持使用参数自行调整

    plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=1.0)

颜色、标记和线类型

下面是plot函数的详细介绍

plot(x, y, linestyle, linewidth, color, marker, markersize, markeredgecolor, markerfacecolor, markeredgewidth, label, alpha)

其中x为x轴数值,y为y轴数值,此外也可以传入多个x1, y1, x2, y2同时绘制多个图,下面为其他参数解释:

  • linestyle: 折线类型,实线、虚线和点画线等
  • linewidth: 折线宽度
  • marker: 为折线图添加点,并设置形状
  • markersize: 点的大小
  • markeredgecolor: 点的边框颜色
  • markerfacecolor: 点的填充颜色
  • markeredgewidth: 点的边框宽度
  • label: 折线图标签
  • alpha: 折线图透明度

还有绘制其他形状图形的常用函数

函数 说明
pie 绘制饼状图
bar 绘制柱状图
hist 绘制二维直方图
scatter 绘制散点图

下面是调整绘图样式的详细参数选项

符号参数 可选类型 说明
color 线条颜色 b 蓝色
c 青色
g 绿色
k 黑色
m 洋红色
r 红色
w 白色
y 黄色
linestyle 线条样式 - 实线
-- 虚线
-. 点画线
: 点线
marker 数据点形状 .
o 圆圈
* 星形
x 十字
s 正方形
p 五角星
d 钻石
h 六角形
+ 加号
^ < > 各种三角形
1234 Tropod向上下左右各个方向

特殊属性 drawstyle='steps-post'绘制梯形图形

刻度、标签和图例

Clone this wiki locally