zoukankan      html  css  js  c++  java
  • 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()

     

  • 相关阅读:
    PAT 甲级 1126 Eulerian Path (25 分)
    PAT 甲级 1126 Eulerian Path (25 分)
    PAT 甲级 1125 Chain the Ropes (25 分)
    PAT 甲级 1125 Chain the Ropes (25 分)
    PAT 甲级 1124 Raffle for Weibo Followers (20 分)
    PAT 甲级 1124 Raffle for Weibo Followers (20 分)
    PAT 甲级 1131 Subway Map (30 分)
    PAT 甲级 1131 Subway Map (30 分)
    AcWing 906. 区间分组 区间贪心
    AcWing 907. 区间覆盖 区间贪心
  • 原文地址:https://www.cnblogs.com/anhoo/p/9384665.html
Copyright © 2011-2022 走看看