zoukankan      html  css  js  c++  java
  • python绘图

    一个案例

    import matplotlib.pyplot as plt
    
    # 数据处理
    data = [
    
    ['01/01','0','0'],
    ['01/02','1','0'],
    ['01/03','4','13'],
    ['01/04','14','30'],
    ['01/05','20','43'],
    ['01/06','51','69']
    
    
    ]
    
    X0=[]
    Y1=[]
    Y2=[]
    for ii in data:
       X0.append(ii[0])
       Y1.append(int(ii[1]))
       Y2.append(int(ii[2]))
    
    # 绘图设置
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    
    # 绘图
    fig, ax = plt.subplots()
    rects1 = ax.bar(x=X0, height=Y1, width=0.45, color='red', label="确诊",alpha=0.8)
    rects2 = ax.bar(x=X0, height=Y2, width=0.45, color='green', label="无症状", bottom=Y1,alpha=0.8)
    
    
    # 在柱状图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
    for x, y in enumerate(Y1):
        plt.text(x, y/2, '%s' % y, ha='center', va='bottom',fontsize='12')
    
    Y3 = []
    for ii in range(len(Y1)):
        Y3.append((Y1[ii]+Y2[ii]))
    print(Y3)
    
    for x, y in enumerate(Y3):
        plt.text(x, y + 1, '%s' % y, ha='center', va='bottom',fontsize='12')
    
    
    # y轴范围
    maxN = max(Y1)+max(Y2)
    plt.ylim(0, maxN*1.4)
    
    plt.xlabel("日期")
    plt.ylabel("人数")
    ax.set_title('河北近日新冠新增')
    
    # X轴标签
    ax.set_xticklabels(X0)
    
    
    plt.legend()
    plt.savefig('2.tif', dpi=300)
    plt.show()
    View Code

    转载仅为学习,不会商用。
    欢迎转载原创,附文链接。
  • 相关阅读:
    300+值得收藏的设计师免费资源站
    Apache 隐藏入口文件 index.php
    Nginx 虚拟主机下支持Pathinfo并隐藏入口文件的完整配置
    Java多线程
    Java注解
    Java异常机制
    面向对象
    数组
    Java方法(函数)
    Java流程控制(Scanner)
  • 原文地址:https://www.cnblogs.com/xdd1997/p/14246493.html
Copyright © 2011-2022 走看看