• 吴裕雄--天生自然Numpy库学习笔记:NumPy Matplotlib


    Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。
    Windows 系统安装 Matplotlib
    进入到 cmd 窗口下,执行以下命令:
    python -m pip install -U pip setuptools
    python -m pip install matplotlib
    Linux 系统安装 Matplotlib
    可以使用 Linux 包管理器来安装:
    Debian / Ubuntu:
    sudo apt-get install python-matplotlib
    Fedora / Redhat:
    sudo yum install python-matplotlib
    Mac OSX 可以使用 pip 命令来安装:
    sudo python -mpip install matplotlib
    安装完后,你可以使用 python -m pip list 命令来查看是否安装了 matplotlib 模块。
    import numpy as np 
    from matplotlib import pyplot as plt 
     
    x = np.arange(1,11) 
    y =  2  * x +  5 
    plt.title("Matplotlib demo") 
    plt.xlabel("x axis caption") 
    plt.ylabel("y axis caption") 
    plt.plot(x,y) plt.show()
    图形由 show() 函数显示。
    图形中文显示
    Matplotlib 默认情况不支持中文,我们可以使用以下简单的方法来解决:
    首先下载字体(注意系统):https://www.fontpalace.com/font-details/SimHei/
    SimHei.ttf 文件放在当前执行的代码文件中:
    import numpy as np 
    from matplotlib import pyplot as plt 
    import matplotlib
     
    # fname 为 你下载的字体库路径,注意 SimHei.ttf 字体的路径
    zhfont1 = matplotlib.font_manager.FontProperties(fname="SimHei.ttf") 
     
    x = np.arange(1,11) 
    y =  2  * x +  5 
    plt.title("天生自然", fontproperties=zhfont1) 
     
    # fontproperties 设置中文显示,fontsize 设置字体大小
    plt.xlabel("x 轴", fontproperties=zhfont1)
    plt.ylabel("y 轴", fontproperties=zhfont1)
    plt.plot(x,y) 
    plt.show()
    from matplotlib import pyplot as plt
    import matplotlib
    a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
    
    for i in a:
        print(i)
    import numpy as np 
    from matplotlib import pyplot as plt 
     
    x = np.arange(1,11) 
    y =  2  * x +  5 
    plt.title("Matplotlib demo") 
    plt.xlabel("x axis caption") 
    plt.ylabel("y axis caption") 
    plt.plot(x,y,"ob") 
    plt.show()
    import numpy as np 
    import matplotlib.pyplot as plt 
    # 计算正弦曲线上点的 x 和 y 坐标
    x = np.arange(0,  3  * np.pi,  0.1) 
    y = np.sin(x)
    plt.title("sine wave form")  
    # 使用 matplotlib 来绘制点
    plt.plot(x, y) 
    plt.show()
    import numpy as np 
    import matplotlib.pyplot as plt 
    # 计算正弦和余弦曲线上的点的 x 和 y 坐标 
    x = np.arange(0,  3  * np.pi,  0.1) 
    y_sin = np.sin(x) 
    y_cos = np.cos(x)  
    # 建立 subplot 网格,高为 2,宽为 1  
    # 激活第一个 subplot
    plt.subplot(2,  1,  1)  
    # 绘制第一个图像 
    plt.plot(x, y_sin) 
    plt.title('Sine')  
    # 将第二个 subplot 激活,并绘制第二个图像
    plt.subplot(2,  1,  2) 
    plt.plot(x, y_cos) 
    plt.title('Cosine')  
    # 展示图像
    plt.show()
    pyplot 子模块提供 bar() 函数来生成条形图。
    from matplotlib import pyplot as plt 
    x =  [5,8,10] 
    y =  [12,16,6] 
    x2 =  [6,9,11] 
    y2 =  [6,15,7] 
    plt.bar(x, y, align =  'center') 
    plt.bar(x2, y2, color =  'g', align =  'center') 
    plt.title('Bar graph') 
    plt.ylabel('Y axis') 
    plt.xlabel('X axis') 
    plt.show()

    numpy.histogram() 函数是数据的频率分布的图形表示。 水平尺寸相等的矩形对应于类间隔,称为 bin,变量 height 对应于频率。
    numpy.histogram()函数将输入数组和 bin 作为两个参数。 bin 数组中的连续元素用作每个 bin 的边界。
    import numpy as np 
     
    a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
    np.histogram(a,bins =  [0,20,40,60,80,100]) 
    hist,bins = np.histogram(a,bins =  [0,20,40,60,80,100])  
    print (hist) 
    print (bins)
    Matplotlib 可以将直方图的数字表示转换为图形。 pyplot 子模块的 plt() 函数将包含数据和 bin 数组的数组作为参数,并转换为直方图。
    from matplotlib import pyplot as plt 
    import numpy as np  
     
    a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) 
    plt.hist(a, bins =  [0,20,40,60,80,100]) 
    plt.title("histogram") 
    plt.show()
  • 相关阅读:
    【费用流】【CODEVS】1227 方格取数2
    【CODEVS】1034 家园
    【BZOJ】1066: [SCOI2007]蜥蜴
    【最大流】【CODEVS】1993 草地排水
    【HDU】2191 多重背包问题
    【TYVJ】1520 树的直径
    【BZOJ】1984 月下“毛景树”
    【BZOJ】1588: [HNOI2002]营业额统计
    【NOI】2004 郁闷的出纳员
    【POJ】2892 Tunnel Warfare
  • 原文地址:https://www.cnblogs.com/tszr/p/12230587.html
Copyright © 2020-2023  润新知