Python数据可视化

作者: 爱写代码的小王子 | 来源:发表于2021-06-10 13:44 被阅读0次

    要想实现数据可视化,首先需要了解三大神器

    • numpy - 处理数据 (ndarray - 提供多维数组)
    • pandas - numpy和matplotlib的结合,数据处理,数据可视化
    • matplotlib - 数据可视化

    下载第三方库

    !pip install numpy pandas matplotlib
    

    下载成功后,导入第三方库

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    #由于需要产生随机数,这里还需导入random模块
    import random
    

    这里以学生成绩为例,有3个列表,学生姓名,课程科目,学生分数,分数是随机生成的

    names = ['小明','小花','小强','小李','小张']
    subjects = ['语文','数学','英文']
    
    #scores = [[random.randint(70,100) for _ in subjects] for _ in names]
    scores = [[random.randint(80,100) for _ in subjects] for _ in names]
    

    使用pandas生成学生课程分数信息表格,以学生姓名为行索引,科目为列索引

    df = pd.DataFrame(data=scores,index = names,columns=subjects)
    

    效果


    image.png

    获取每个学生的平均分以及没最高分、最低分

    #获取每个学生的平均分,第二个参数表示保留的小数位数
    mean_socres = np.round(df.mean(axis=1),0)
    #mean_socres = np.round(df.mean(axis=1),0)
    #每个学生的最高分
    max_socres = scores.max(axis=1)
    #每个学生的最低分
    max_socres = scores.max(axis=0)
    

    添加一行最高分

    maxs = df.max(axis=0)
    #添加行
    df.loc['最高分'] = maxs
    

    效果


    image.png

    添加一列平均分

    df['平均分'] = mean_socres
    

    绘制条形图

    df = pd.DataFrame(data=[100,200,300,400],index=['1季度','2季度','3季度','4季度'])
    
    # df = pd.DataFrame(data=[10000,20100,19800,32000],index=['第一季度','第二季度','第三季度','第四季度'])
    #设置显示中文
    plt.rcParams['font.sans-serif'] = 'SimHei'   # 使图形中的中文正常编码显示
    #正负号正常显示
    plt.rcParams['axes.unicode_minus'] = False
    df.plot(kind = 'bar')
    

    效果


    image.png

    绘制折线图

    df = pd.DataFrame(data=[100,200,300,400],index=['1季度','2季度','3季度','4季度'])
    
    # df = pd.DataFrame(data=[10000,20100,19800,32000],index=['第一季度','第二季度','第三季度','第四季度'])
    #设置显示中文
    plt.rcParams['font.sans-serif'] = 'SimHei'   # 使图形中的中文正常编码显示
    #正负号正常显示
    plt.rcParams['axes.unicode_minus'] = False
    df.plot(kind = 'line')
    
    image.png

    绘制饼图

    # 数据
    labels = ["重庆", "四川", "贵州", "云南"]
    lists = [15, 30, 45, 10]
    # 画饼图
    plt.pie(x=lists, labels=labels,autopct="%0.1f%%")
    
    # 展示饼图
    plt.show()
    
    image.png

    绘制sin曲线

    #绘制sin曲线
    x = np.arange(0,10,0.1)
    y = np.sin(x)
    plt.bar(x,y,width=0.04,linewidth = 0.2)
    plt.plot(x,y,'r--',linewidth = 2)
    plt.title('Sin曲线')
    plt.xlabel('X')
    plt.ylabel('Y')
    #设置显示中文
    plt.rcParams['font.sans-serif'] = 'SimHei'   # 使图形中的中文正常编码显示
    #正负号正常显示
    plt.rcParams['axes.unicode_minus'] = False
    plt.show()
    
    image.png

    总结:今天学习了一些简单的绘图的方法以及将列表或其他序列转化为array的方法,很简单也很有收获。

    相关文章

      网友评论

        本文标题:Python数据可视化

        本文链接:https://www.haomeiwen.com/subject/vdbueltx.html