• Matplotlib 基本用法


    1、基础应用

    >>> import matplotlib.pyplot as plt
    >>> import numpy as np
    #使用np.linspace定义x:范围是(-1,1);个数是50. 仿真一维数据组(x ,y)表示曲线1
    >>> x = np.linspace(-1, 1, 50)
    >>> y = 2*x + 1
    #使用plt.figure定义一个图像窗口. 使用plt.plot画(x ,y)曲线. 使用plt.show显示图像.
    >>> plt.figure()
    <Figure size 640x480 with 0 Axes>
    >>> plt.plot(x, y)
    [<matplotlib.lines.Line2D object at 0x000001E9980C9668>]
    >>> plt.show()

    2、简单的线条

    matplotlib 的 figure 就是一个 单独的 figure 小窗口, 小窗口里面还可以有更多的小图片.

    #使用np.linspace定义x:范围是(-3,3);个数是50. 仿真一维数据组(x ,y1)表示曲线1. 仿真一维数据组(x ,y2)表示曲线2.
    >>> x = np.linspace(-3, 3, 50)
    >>> y1 = 2*x + 1
    >>> y2 = x**2
    >>> plt.figure()
    <Figure size 640x480 with 0 Axes>
    >>> plt.plot(x, y1)
    [<matplotlib.lines.Line2D object at 0x000001E998804EB8>]
    >>> plt.show()

    #使用plt.figure定义一个图像窗口:编号为3;大小为(8, 5). 使用plt.plot画(x ,y2)曲线. 使用plt.plot画(x ,y1)曲线,曲线的颜色属性(color)为红色;曲线的宽度(linewidth)为1.0;曲线的类型(linestyle)为虚线. 使用plt.show显示图像.
    >>> plt.figure(num=3, figsize=(8, 5),)
    <Figure size 800x500 with 0 Axes>
    >>> plt.plot(x, y2)
    [<matplotlib.lines.Line2D object at 0x000001C38F43C048>]
    >>> plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
    [<matplotlib.lines.Line2D object at 0x000001C38F43C208>]
    >>> plt.show()

    3、设置坐标轴

    >>> x = np.linspace(-3, 3, 50)
    >>> y1 = 2*x + 1
    >>> y2 = x**2
    
    #使用plt.figure定义一个图像窗口. 使用plt.plot画(x ,y2)曲线. 使用plt.plot画(x ,y1)曲线,曲线的颜色属性(color)为红色;曲线的宽度(linewidth)为1.0;曲线的类型(linestyle)为虚线.
    >>> plt.figure()
    <Figure size 640x480 with 0 Axes>
    >>> plt.plot(x, y2)
    [<matplotlib.lines.Line2D object at 0x000001C38F2CD5F8>]
    >>> plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
    [<matplotlib.lines.Line2D object at 0x000001C38F2CD7B8>]
    
    #使用plt.xlim设置x坐标轴范围:(-1, 2); 使用plt.ylim设置y坐标轴范围:(-2, 3); 使用plt.xlabel设置x坐标轴名称:’I am x’; 使用plt.ylabel设置y坐标轴名称:’I am y’;
    >>> plt.xlim((-1, 2))
    (-1, 2)
    >>> plt.ylim((-2, 3))
    (-2, 3)
    >>> plt.xlabel('I am x')
    Text(0.5,0,'I am x')
    >>> plt.ylabel('I am y')
    Text(0,0.5,'I am y')
    >>> plt.show()

    #使用np.linspace定义范围以及个数:范围是(-1,2);个数是5. 使用print打印出新定义的范围. 使用plt.xticks设置x轴刻度:范围是(-1,2);个数是5
    >>> new_ticks = np.linspace(-1, 2, 5)
    >>> print(new_ticks)
    [-1.   -0.25  0.5   1.25  2.  ]
    >>> plt.xticks(new_ticks)
    ([<matplotlib.axis.XTick object at 0x000001C38F5ADF60>, <matplotlib.axis.XTick object at 0x000001C38F5ADBA8>, <matplotlib.axis.XTick object at 0x000001C38F5AD320>, <matplotlib.axis.XTick object at 0x000001C38F4BD320>, <matplotlib.axis.XTick object at 0x000001C38F4B44E0>], <a list of 5 Text xticklabel objects>)
    #使用plt.yticks设置y轴刻度以及名称:刻度为[-2, -1.8, -1, 1.22, 3];对应刻度的名称为[‘really bad’,’bad’,’normal’,’good’, ‘really good’]. 使用plt.show显示图像.
    >>> plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really bad$', r'$bad$', r'$normal$', r'$good$', r'$really good$'])
    ([<matplotlib.axis.YTick object at 0x000001C3832A15F8>, <matplotlib.axis.YTick object at 0x000001C38F5A6B70>, <matplotlib.axis.YTick object at 0x000001C38F5AD240>, <matplotlib.axis.YTick object at 0x000001C38F4B4FD0>, <matplotlib.axis.YTick object at 0x000001C38F4C79E8>], <a list of 5 Text yticklabel objects>)
    >>> plt.show()

    4、设置不同的名字和位置

    >>> import matplotlib.pyplot as plt
    >>> import numpy as np
    >>> x = np.linspace(-3, 3, 50)
    >>> y1 = 2*x + 1
    >>> y2 = x**2
    >>> plt.figure()
    <Figure size 640x480 with 0 Axes>
    >>> plt.plot(x, y2)
    [<matplotlib.lines.Line2D object at 0x000001C38E1099B0>]
    >>> plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
    [<matplotlib.lines.Line2D object at 0x000001C38E1095C0>]
    >>> plt.xlim((-1, 2))
    (-1, 2)
    >>> plt.ylim((-2, 3))
    (-2, 3)
    >>> new_ticks = np.linspace(-1, 2, 5)
    >>> plt.xticks(new_ticks)
    ([<matplotlib.axis.XTick object at 0x000001C38F2DD860>, <matplotlib.axis.XTick object at 0x000001C3832862E8>, <matplotlib.axis.XTick object at 0x000001C38F47FAC8>, <matplotlib.axis.XTick object at 0x000001C38D91B240>, <matplotlib.axis.XTick object at 0x000001C38D91BCC0>], <a list of 5 Text xticklabel objects>)
    >>> plt.yticks([-2, -1.8, -1, 1.22, 3],['$really bad$', '$bad$', '$normal$', '$good$', '$really good$'])
    ([<matplotlib.axis.YTick object at 0x000001C38F4410B8>, <matplotlib.axis.YTick object at 0x000001C38F487AC8>, <matplotlib.axis.YTick object at 0x000001C38F47F0B8>, <matplotlib.axis.YTick object at 0x000001C38B7A2C50>, <matplotlib.axis.YTick object at 0x000001C38B7A2AC8>], <a list of 5 Text yticklabel objects>)
    
    #使用plt.gca获取当前坐标轴信息. 使用.spines设置边框:右侧边框;使用.set_color设置边框颜色:默认白色; 使用.spines设置边框:上边框;使用.set_color设置边框颜色:默认白色;
    >>> ax = plt.gca()
    >>> ax.spines['right'].set_color('none')
    >>> ax.spines['top'].set_color('none')
    >>> plt.show()

    5、调整坐标轴

    #使用.xaxis.set_ticks_position设置x坐标刻度数字或名称的位置:bottom.(所有位置:top,bottom,both,default,none)
    >>> ax.xaxis.set_ticks_position('bottom')
    
    #使用.spines设置边框:x轴;使用.set_position设置边框位置:y=0的位置;(位置所有属性:outward,axes,data)
    >>> ax.spines['bottom'].set_position(('data', 0))
    
    #使用.yaxis.set_ticks_position设置y坐标刻度数字或名称的位置:left.(所有位置:left,right,both,default,none)
    >>> ax.yaxis.set_ticks_position('left')
    
    #使用.spines设置边框:y轴;使用.set_position设置边框位置:x=0的位置;(位置所有属性:outward,axes,data) 使用plt.show显示图像.
    >>> ax.spines['left'].set_position(('data',0))
    >>> plt.show()

     

  • 相关阅读:
    USACO2018 DEC(Platinum) (树上乱搞,期望+凸包)
    USACO2018 DEC (Gold) (dp,容斥+哈希,最短路)
    《信息学奥赛一本通》题库 1034 计算三角形面积——基础
    UNR#3 Day1——[ 堆+ST表+复杂度分析 ][ 结论 ][ 线段树合并 ]
    bzoj 4298 [ONTAK2015]Bajtocja——哈希+启发式合并
    玲珑杯#20 C 漆黑的太阳——莫队
    链表写法
    传址函数写法
    bzoj 4650 & 洛谷 P1117 优秀的拆分 —— 枚举关键点+后缀数组
    bzoj 2119 股市的预测 —— 枚举关键点+后缀数组
  • 原文地址:https://www.cnblogs.com/anhoo/p/9384665.html
Copyright © 2020-2023  润新知