美文网首页
Matplotlib入门

Matplotlib入门

作者: 学习编程好少年 | 来源:发表于2017-07-29 15:07 被阅读0次

    Matplotlib的使用

    Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。
    matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。

    import matplotlib.pyplot as plt
    

    pyplot的plot()函数

    plt.plot(x, y, format_string, **kwargs)
    
    • x : X轴数据,列表或数组,可选。plt.plot()只有一个输入列表或数组时,参数被当作Y轴,X轴以索引自动生成。
    • y : Y轴数据,列表或数组
    • format_string: 控制曲线的格式字符串,可选
      由颜色字符、风格字符和标记字符组成,颜色字符、风格字符和标记字符可以组合使用。
    颜色字符 说明 颜色字符 说明
    'b' 蓝色 'm' 洋红色 magenta
    'g' 绿色 'y' 黄色
    'r' 红色 'k' 黑色
    'c' 青绿色 cyan 'w' 白色
    '#008000' RGB某颜色 '0.8' 灰度值字符串
    风格字符 说明
    '-' 实线
    '--' 破折线
    '-.' 点划线
    ':' 虚线
    '' ' ' 无线条
    标记字符 说明 标记字符 说明 标记字符 说明
    '.' 点标记 '1' 下花三角标记 'h' 竖六边形标记
    ',' 像素标记(极小点) '2' 上花三角标记 'H' 横六边形标记
    'o' 实心圈标记 '3' 左花三角标记 '+' 十字标记
    'v' 倒三角标记 '4' 右花三角标记 'x' x标记
    '^' 上三角标记 's' 实心方形标记 'D' 菱形标记
    '>' 右三角标记 'p' 实心五角标记 'd' 瘦菱形标记
    '<' 左三角标记 '*' 星形标记 '|' 垂直线标记

    color : 控制颜色, color='green'
    linestyle : 线条风格, linestyle='dashed'
    marker : 标记风格, marker='o'
    markerfacecolor: 标记颜色, markerfacecolor='blue'
    markersize : 标记尺寸, markersize=20
    ...

    • **kwargs : 第二组或更多(x,y,format_string)

    当绘制多条曲线时,各条曲线的x不能省略

    pyplot的绘图区域

    简单的绘图区域

    plt.subplot(nrows, ncols, plot_number)
    

    在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域。

    复杂的绘图区域

    1. plt.subplot2grid()
    plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
    

    理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
    实例:

    plt.subplot2grid((3, 3), (1, 0), colspan=2) #ax2
    
    1. GridSpec类

    实例:

    import matplotlib.gridspec as gridspec
    
    gs = gridspec.GridSpec(3, 3)
    
    ax1 = plt.subplot(gs[0, :])
    ax2 = plt.subplot(gs[1, :-1])
    ax3 = plt.subplot(gs[1:, -1])
    ax4 = plt.subplot(gs[2, 0])
    ax5 = plt.subplot(gs[2, 1])
    

    pyplot的中文显示

    第一种方法

    pyplot并不默认支持中文显示,需要rcParams修改字体实现

    import matplotlib
    matplotlib.rcParams['font.family'] = 'SimHei'
    

    rcParams的属性:

    属性 说明
    'font.family' 用于显示字体的名字
    'font.style' 字体风格,正常'normal'或斜体'italic'
    'font.size' 字体大小,整数字号或者'large'、'x‐small'

    中文字体的种类:
    rcParams['font.family']

    中文字体 说明
    'SimHei' 中文黑体
    'Kaiti' 中文楷体
    'LiSu' 中文隶书
    'FangSong' 中文仿宋
    'YouYuan' 中文幼圆
    'STSong' 华文宋体

    第二种方法

    推荐第二种方法。
    在有中文输出的地方,增加一个属性:fontproperties.

    plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=20)
    

    pyplot的文本显示

    函数 说明
    plt.xlabel() 对X轴增加文本标签
    plt.ylabel() 对Y轴增加文本标签
    plt.title() 对图形整体增加文本标签
    plt.text() 在任意位置增加文本
    plt.annotate() 在图形中增加带箭头的注解
    import numpy as np
    import matplotlib.pyplot as plt
    
    a = np.arange(0.0, 5.0, 0.02)
    plt.plot(a, np.cos(2*np.pi*a), 'r--')
    
    plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=15, color='green')
    plt.ylabel('纵轴:时间', fontproperties='SimHei', fontsize=15)
    plt.title(r'正弦波实例 $y=cos(2\pi x)$', fontproperties='SimHei', fontsize=25)
    plt.text(2, 1, r'$\mu=100$', fontsize=15)
    
    plt.axis([-1, 6, -2, 2])
    plt.grid(True)
    plt.show()
    

    plt.axis()函数给出了形如[xmin,xmax,ymin,ymax]的列表,指定了坐标轴的范围。
    plt.grid()控制网格显示。

    plt.savefig()将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量

    plt.savefig('test', dpi=600)
    

    Reference:
    中国大学MOOC北京理工大学Python数据分析与展示课程嵩天老师课件
    课程主页

    相关文章

      网友评论

          本文标题:Matplotlib入门

          本文链接:https://www.haomeiwen.com/subject/lmbqlxtx.html