Python模块之Matplotlib

Matplotlib

seaborn: 基于Matplotlib的高层会图库

import matplotlib.pyplot as plt

三层结构

  1. 容器层

    1. Canvas:画布
    2. Figure:图
    3. Axes:座标系,绘图区

    特点:

    • 一个figure(画布)可以包含多个axes(座标系/绘图区),但是一个axes只能属于一个figure。
    • 一个axes(座标系/绘图区)可以包含多个axis(座标轴),包含两个即为2d座标系,3个即为3d座标系
  2. 辅助显示层

Axes外观(facecolor)、边框线(spines)、座标轴(axis)、座标轴名称(axis label)、座标轴刻度(tick)、座标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)

  1. 图像层

    Axes内通过plot、scatter、bar、histogram、pie等函数根据数据绘制出的图像。

基础绘图

  • plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class ‘matplotlib.figure.Figure’>, clear=False, **kwargs

    • 创建画布, 返回figure对象
    • num: 编号
    • figsize: 大小.默认是(6.4, 4.8)
    • dpi: 分辨率.默认是100
    • facecolor: 背景颜色. 默认是w 白色
    • edgecolor: 边框颜色.默认是w 白色
    • frameon: 边框. False 不绘制边框
    • clear: 清除
  • plt.savefig(fname, dpi=None, facecolor=‘w’, edgecolor=‘w’,
    orientation=‘portrait’, papertype=None, format=None,
    transparent=False, bbox_inches=None, pad_inches=0.1,
    frameon=None, metadata=None)

    • 保存图片到指定路径
    • plt.show()会释放figure资源, 必须在show之前保存
  • plt.show()

    • 显示图片
  • plt.xticks(ticks=None, labels=None, **kwargs)

    • 获取或设置x轴的当前刻度
    # 设置刻度和标签
    plt.xticks(np.arange(0, 1, step=0.2))
    # 获取刻度和标签
    locs, labels = plt.xticks()
    
  • plt.yticks()

    • 获取或设置y轴的当前刻度
  • plt.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)

    • 设置x轴的标签
  • plt.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)

    • 设置y轴的标签
  • plt.title(label, fontdict=None, loc=‘center’, pad=None, **kwargs)

    • 设置标题
  • plt.legend(*args, **kwargs)

    • 设置图例
    • loc: 图例位置. best 自动选择最好的位置
    Location String Location Code
    ‘best’ 0
    ‘upper right’ 1
    ‘upper left’ 2
    ‘lower left’ 3
    ‘lower right’ 4
    ‘right’ 5
    ‘center left’ 6
    ‘center right’ 7
    ‘lower center’ 8
    ‘upper center’ 9
    ‘center’ 10
  • plt.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

    • 显示图像
    • x,y: x/y值, 类数组/标量
    • fmt\ 定义参数的快捷方法,包括颜色color/线型linestyle/标记marker
    • 与fmt冲突时,关键字参数优先
    # 效果相同
    plot(x, y, 'go--')
    plot(x, y, color='green', marker='o', linestyle='--')
    
    • data: 可索引对象. 需要一并选择标签名称在对应的x/y轴绘制
  • 在同一座标系当中的不同图形, 多次plot即可

折线图

# 数据
x = range(60)
y_sh = [random.uniform(15, 18) for _ in x]
y_bj = [random.uniform(1, 3) for _ in x]
# 画布
plt.figure(figsize=(20, 8), dpi=80)
# 显示
plt.plot(x, y_sh)
# 座标轴刻度
plt.xticks(x[::5], [f'11点{i}分' for i in x][::5])
plt.yticks(range(40)[::5])
# 网格
plt.grid(True, linestyle='--', alpha=.5)
# 描述
plt.xlabel('时间')
plt.ylabel('温度')
plt.title("中午11点0分到12点之间的温度变化图示")

散点图

柱状图

直方图

饼图

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章