视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
python使用matplotlib绘制柱状图教程
2020-11-27 14:16:48 责编:小OO
文档
 Matplotlib的概念这里就不多介绍了

小编之前也和大家分享过python使用matplotlib实现的折线图和制饼图效果,感兴趣的朋友们也可以点击查看,下面来看看python使用matplotlib绘制柱状图的方法吧,具体如下:

1. 基本的柱状图

import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data)
plt.show()


plt.bar函数签名为:

bar(left, height, width=0.8, bottom=None, **kwargs)

事实上,left,height,width,bottom这四个参数确定了柱体的位置和大小。默认情况下,left为柱体的居中位置(可以通过align参数来改变left值的含义),即:

  • (left - width / 2, bottom)为左下角位置

  • (left + width / 2, bottom + height)为右上角位置

  • 例如:

    import matplotlib.pyplot as plt
    
    data = [5, 20, 15, 25, 10]
    
    plt.bar([0.3, 1.7, 4, 6, 7], data, width=0.6, bottom=[10, 0, 5, 0, 5])
    plt.show()


    2. 设置柱体样式

    (1)颜色

    通过facecolor(或fc)关键字参数可以设置柱体颜色,例如:

    import matplotlib.pyplot as plt
    
    data = [5, 20, 15, 25, 10]
    
    plt.bar(range(len(data)), data, fc='g')
    plt.show()


    通过color关键字参数 可以一次性设置多个颜色,例如:

    import matplotlib.pyplot as plt
    
    data = [5, 20, 15, 25, 10]
    
    plt.bar(range(len(data)), data, color='rgb') # or `color=['r', 'g', 'b']`
    plt.show()


    (2)描边

    相关的关键字参数为:

  • edgecolor 或 ec

  • linestyle 或 ls

  • linewidth 或 lw

  • 例如:

    import matplotlib.pyplot as plt
    
    data = [5, 20, 15, 25, 10]
    
    plt.bar(range(len(data)), data, ec='r', ls='--', lw=2)
    plt.show()


    (3)填充

    hatch关键字可用来设置填充样式,可取值为:/, , |, -, +, x, o, O, ., *。例如:

    import matplotlib.pyplot as plt
    
    data = [5, 20, 15, 25, 10]
    
    plt.bar(range(len(data)), data, ec='k', lw=1, hatch='o')
    plt.show()

    3. 设置tick label

    import matplotlib.pyplot as plt
    
    data = [5, 20, 15, 25, 10]
    labels = ['Tom', 'Dick', 'Harry', 'Slim', 'Jim']
    
    plt.bar(range(len(data)), data, tick_label=labels)
    plt.show()


    4. 堆叠柱状图

    通过bottom参数,可以绘制堆叠柱状图。例如:

    import numpy as np
    import matplotlib.pyplot as plt
    
    size = 5
    x = np.arange(size)
    a = np.random.random(size)
    b = np.random.random(size)
    
    plt.bar(x, a, label='a')
    plt.bar(x, b, bottom=a, label='b')
    plt.legend()
    plt.show()


    5. 并列柱状图

    绘制并列柱状图与堆叠柱状图类似,都是绘制多组柱体,只需要控制好每组柱体的位置和大小即可。例如:

    import numpy as np
    import matplotlib.pyplot as plt
    
    size = 5
    x = np.arange(size)
    a = np.random.random(size)
    b = np.random.random(size)
    c = np.random.random(size)
    
    total_width, n = 0.8, 3
    width = total_width / n
    x = x - (total_width - width) / 2
    
    plt.bar(x, a, width=width, label='a')
    plt.bar(x + width, b, width=width, label='b')
    plt.bar(x + 2 * width, c, width=width, label='c')
    plt.legend()
    plt.show()


    6. 条形图

    使用barh方法绘制条形图。例如:

    import matplotlib.pyplot as plt
    
    data = [5, 20, 15, 25, 10]
    
    plt.barh(range(len(data)), data)
    plt.show()


    plt.barh方法的签名为:

    barh(bottom, width, height=0.8, left=None, **kwargs)

    可以看到与plt.bar方法类似。因此堆积条形图和并列条形图的画法与前面类似,不做赘述。

    7. 正负条形图

    import numpy as np
    import matplotlib.pyplot as plt
    
    a = np.array([5, 20, 15, 25, 10])
    b = np.array([10, 15, 20, 15, 5])
    
    plt.barh(range(len(a)), a)
    plt.barh(range(len(b)), -b)
    plt.show()

    更多python使用matplotlib绘制柱状图教程相关文章请关注PHP中文网!

    下载本文
    显示全文
    专题