Python数据可视化

时间:2021-7-21 作者:qvyue

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

  • 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)

效果

Python数据可视化
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

效果

Python数据可视化
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')

效果

Python数据可视化
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')
Python数据可视化
image.png

绘制饼图

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

# 展示饼图
plt.show()
Python数据可视化
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()
Python数据可视化
image.png

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

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。