zoukankan      html  css  js  c++  java
  • matplotlib画柱状图 直方图 饼图

    matplotlib.pyplot

    1.画柱状图

    matplotlib.pyplot.bar(x, height, width=0.8,bottom=None)

    在画堆叠柱状图的时候可以设置bottom

    import matplotlib.pyplot as plt
    import numpy as np
    
    labels = ['A','B','C','D','E']
    x1 = [20,15,30,25,18]
    x2 = [23,30,20,12,10]
    lps = np.arange(len(labels))  # 设置刻度标签的位置
    width = 0.35
    
    # fig = plt.figure(figsize=(6,5))
    # ax = fig.add_subplot()  # 与下面的等价
    fig, ax = plt.subplots(figsize=(6,5))  # fig表示绘图窗口,ax表示窗口里的坐标系,可以创建多个子图
    # ax1,ax2 = ax.ravel() # 有多个子图时,获得每个子图的句柄
    # 显示柱状高度
    for i,j in zip(lps, x1):
        plt.text(i-width/2, j+0.005, j, ha='center', va='bottom')
    for i,j in zip(lps, x2):
        plt.text(i+width/2, j+0.005, j, ha='center', va='bottom')
    
    ax.bar(lps-width/2, x1, width=width, label='G1')
    ax.bar(lps+width/2, x2, width=width, label='G2')
    ax.set_xticks(lps)          # 设置柱状图的标签位置
    ax.set_xticklabels(labels)  # 设置柱状图的标签,与上式联用
    ax.set_ylabel('scores')
    ax.set_title('scores of G1 and G2')
    ax.legend()
    
    fig.tight_layout()
    plt.show()
    
    '''
    # 画多条并列的柱状图
    ax.bar(lps, x1, width=width, label='G1')
    ax.bar(lps+width, x2, width=width, label='G2')
    ax.bar(lps+2*width, x3, width=width, label='G3')
    ax.set_xticks(lps+width) 
    ax.set_xticklabels(labels)  
    '''

    2.画直方图

    plt.hist(x, bins=None, density=None)

    import matplotlib.pyplot as plt
    import numpy as np
    from scipy.stats import norm
    
    mu,sigma = 0, 1
    x = mu + sigma*np.random.randn(10000)
    
    n, bins, patches = plt.hist(x, bins=50, density=True, facecolor='b', alpha=0.35)
    y = norm.pdf(bins, mu, sigma)  # 画概率分布曲线
    plt.plot(bins, y, 'r--')
    plt.ylabel('Probability')
    plt.text(-3, .4, r'$mu=0, sigma=1$')
    plt.grid()
    plt.show()

    3.画饼状图

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.random.randint(10, 100, 6)
    label = list('abcdef')
    explode = (0.05,0,0,0,0,0)  # 突出显示第一块
    plt.pie(x, labels=label, autopct='%1.1f%%', explode=explode)
    # bbox_to_anchor 定位图例的框
    plt.legend(loc="center left", bbox_to_anchor=(1, 0, 0.5, 1))
    plt.show()

    4.读取、显示、保存图片

    plt.imread()

    plt.imshow() 

    plt.savefig(path)

    5.颜色

    matplotlib的颜色代号

  • 相关阅读:
    Linux常用命令
    jQuery
    NPM 常用命令
    Linux中mkdir和touch命令区别
    linux下cat命令详解
    时间
    es5中foreach的用法
    简单的下拉框制作
    window内置对象学习
    [Leetcode]5.Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/pineapple-chicken/p/12326069.html
Copyright © 2011-2022 走看看