• python下matplotlib、numpy、pandas联合作图逐步深入分析


    1.代码1:

    from pandas import Series,DataFrame
    from numpy.random import randn
    import numpy as np
    import matplotlib.pyplot as plt
    
    #随机产生的数值,5组10行,每次打开图形都会变,所以没什么意义。
    df = DataFrame(abs(randn(10,5)),columns=['A','B','C','D','E'],index = np.arange(0,100,10))
    
    df.plot(kind='bar')
    
    plt.show()
    View Code

    2.图1

    3.代码2:

    from pandas import Series,DataFrame
    #from numpy.random import randn #这一行就不需要了
    import numpy as np
    import matplotlib.pyplot as plt
    
    #修改一下,自己随意自定义一份5组10行的数据
    dataz=[
    [11,22,33,44,55],
    [91,81,71,61,51],
    [50,60,90,70,80],
    [41,45,49,44,42],
    [29,92,47,78,87],
    [54,56,87,90,34],
    [65,42,24,45,97],
    [34,76,98,17,28],
    [46,91,43,87,48],
    [98,78,55,67,83],
    ]
    
    #注意data=dataz,其他不变,增加实际可用性
    df = DataFrame(data=dataz,columns=['A','B','C','D','E'],index = np.arange(0,100,10))
    
    df.plot(kind='bar')
    
    plt.show()
    View Code

    4.图2

    5.还是感觉有点麻烦,万一自己有一份数据5组10行,要自己一行一行输入,太麻烦了。
    如果是一份excel数据表格有5组10行,那么用python直接读取,并作图多好呀。

    6.代码3:

    #from pandas import Series,DataFrame
    #pandas里面series是一维数组,dataframe是二维数组
    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    import xlrd #读取excel
    
    #df=pd.read_excel('dataz.xls') #假设有一个dataz.xlsx文件,在根目录下,没说表单那就是默认的sheet1
    #如果一份excel的xls或者xlsx中只有sheet1有表格,那就不需要特别注意,默认即可
    #如果一份excel中有表d1、d2和d3,那么输出d1需要如下设置
    df=pd.read_excel('dataz.xls',sheet_name='d1')
    
    df.columns=['A','B','C','D','E']
    df.plot(kind='bar')
    
    plt.show()
    View Code

    7.图3

    8.注意excel数据格式,图4

    9.注意上述代码所到处模块的不同,实用性很强。

    10.在同一个excel中去第二张sheet的数据作图,中文。


    10.1 图6


    10.2 代码4:

    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    import xlrd #读取excel
    
    from matplotlib.font_manager import FontProperties #导入字体管理器
    
    font = FontProperties(fname='hwxk.ttf') #定义字体,以及字体和默认根目录hwxk=华文行楷
    
    #df=pd.read_excel('dataz.xls') #假设有一个dataz.xlsx文件,在根目录下,没说表单那就是默认的sheet1
    #如果一份excel的xls或者xlsx中只有sheet1有表格,那就不需要特别注意,默认即可
    #如果一份excel中有表d1、d2和d3,那么输出d2需要如下设置
    df=pd.read_excel('dataz.xls',sheet_name='d2')
    
    #附加知识
    #data=df.head()#默认读取前5行的数据
    #dataz=df.head(10)#默认读取前10行的数据
    #print("读取指定行的数据:
    {0}".format(data))
    
    #df.columns=['语文','数学','科学','英语','体育']
    df.plot(kind='bar') 
    plt.title(u'成绩单',fontproperties=font,size=30)
    #注意legend只能放在df.plot下面,否则出现两个图,且中文不能显示
    #注意如果是英文,那么下面的plt.legend不需要,就需要df.columns就可以了
    #注意legend里面的是prop=font,和上面的plt.title中不一样,注意这一点
    #注意loc='best'就是最佳位置的意思
    plt.legend((u'语文',u'数学',u'科学',u'英语',u'体育'),loc='best',prop = font)
    
    plt.show()
    View Code

    10.3 图5

  • 相关阅读:
    一次硬盘安装debian的过程
    Java热替换
    Hibernate缓存
    Java消息机制
    Hibernate批量操作(一)
    SQLite与SQL差异
    tablelayout:fixed 在一些情况下 会导至width失效。
    heiht三种浏览器的写法
    [WebMethod(EnableSession = true)]
    10分钟学会基于ASP.NET的 JQuery实例 (转)
  • 原文地址:https://www.cnblogs.com/ysysbky/p/12377329.html
Copyright © 2020-2023  润新知