zoukankan      html  css  js  c++  java
  • python 使用 matplotlib.pyplot来画柱状图和饼图

    导入包

    import matplotlib.pyplot as plt
    

    柱状图

    最简柱状图

    # 显示高度
    def autolabel(rects):
        for rect in rects:
            height = rect.get_height()
            plt.text(rect.get_x()+rect.get_width()/2.- 0.2, 1.03*height, '%s' % int(height))
    
    
    name_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
    num_list = [33, 44, 53, 16, 11, 17, 17, 10]
    autolabel(plt.bar(range(len(num_list)), num_list, color='rgb', tick_label=name_list))
    plt.show()
    
    

    结果

    堆叠柱状图

    # 显示高度
    def autolabel(rects1, rects2):
        i = 0
        for rect1 in rects1:
            rect2 = rects2[i]
            i += 1
            height = rect1.get_height() + rect2.get_height()
            plt.text(rect1.get_x()+rect1.get_width()/2. - 0.1, 1.03*height, '%s' % int(height))
    
    
    name_list = ['A', 'B', 'C', 'D']
    num_list = [10, 15, 16, 28]
    num_list2 = [10, 12, 18, 26]
    z1 = plt.bar(range(len(num_list)), num_list, label='1', fc='b')
    z2 = plt.bar(range(len(num_list)), num_list2, bottom=num_list, label='2', tick_label=name_list, fc='g')
    autolabel(z1, z2)
    plt.legend()
    plt.show()
    

    结果

    并列柱状图

    name_list = ['A', 'B', 'C', 'D']
    num_list = [10, 15, 16, 28]
    num_list2 = [10, 12, 18, 26]
    x = list(range(len(num_list)))
    total_width, n = 0.8, 2
    width = total_width / n
    plt.bar(x, num_list, width=width, label='1', fc='b')
    for i in range(len(x)):
        x[i] += width
    plt.bar(x, num_list2, width=width, label='2', tick_label=name_list, fc='g')
    plt.legend()
    plt.show()
    
    

    结果

    饼图

    最简饼图

    name_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
    num_list = [33, 44, 53, 6,11, 7, 7, 10, 3, 1]
    # 保证圆形
    plt.axes(aspect=1)
    plt.pie(x=num_list, labels=name_list, autopct='%3.1f %%')
    plt.show()
    
    

    结果

    带切割的饼图

    name_list = ['A', 'B', 'C', 'D']
    num_list = [10, 3, 3, 47]
    colors = ['green', 'yellow', 'blue', 'red']
    # 圆形
    plt.figure(1, figsize=(6, 6))
    #决定分割部分,及其与其它部分之间的间距
    expl = [0, 0, 0, 0.1]
    plt.pie(x=num_list, explode=expl, labels=name_list, autopct='%3.1f %%', colors=colors, shadow=True)
    plt.show()
    
    

    结果

  • 相关阅读:
    大数据Hadoop第二周——配置新的节点DataNode及ip地址
    vue环境搭建详细步骤
    苹果电脑Mac系统如何下载安装谷歌Chrome浏览器
    点云的基本特征和描述
    ModuleNotFoundError: No module named 'rospkg'
    ROS的多传感器时间同步机制Time Synchronizer
    Spring Cloud 2020 版本重大变革,更好的命名方式!
    Spring MVC 接收请求参数所有方式总结!
    阿里为什么不用 Zookeeper 做服务发现?
    微服务之间最佳调用方式是什么?
  • 原文地址:https://www.cnblogs.com/zhhfan/p/9971757.html
Copyright © 2011-2022 走看看