python可视化

臭大佬 2020-03-29 11:48:34 1425
Python 
简介 python可视化

前提

excel内容

文件bai.xlsx(在运行根目录下)

安装相应的库

pip install pandas
pip install xlrd

声明

这里只是为了说明演示而已,请不要纠结统计的意义。

折线图

代码

import pandas as pd
import matplotlib.pyplot as plt
# 默认情况下,Matplotlib 对中文和负号都会显示为一个空框,需要指定字体和编码
# 设置中文显示和负号显示
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 设置图形风格
plt.style.use('ggplot')

#df = pd.read_excel(r"bai.xlsx")
df = pd.read_excel('bai.xlsx', sheet_name='Sheet1')
# 折线图
x = range(len(df['编号']))
y = df['英语'].values
plt.plot(x, y, label='英语')
# 设置标题
plt.title('英文分数统计图')
# 设置轴标签
plt.xlabel('编号')
plt.ylabel('英语')
# 设置刻度标签
plt.xticks(x, df['编号'].values)
# 启用图例
plt.legend()
plt.show()

结果

柱状图

代码

import pandas as pd
import matplotlib.pyplot as plt
# 默认情况下,Matplotlib 对中文和负号都会显示为一个空框,需要指定字体和编码
# 设置中文显示和负号显示
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 设置图形风格
plt.style.use('ggplot')

#df = pd.read_excel(r"bai.xlsx")
df = pd.read_excel('bai.xlsx', sheet_name='Sheet1')
# 柱状图
gender_group_sales = df.groupby('班级')['数学'].sum()
plt.title("班级数学总分")
plt.xlabel('班级')
plt.ylabel('数学总额')
gender_group_sales.plot(kind='bar')
plt.show()

结果

饼状图

代码

import pandas as pd
import matplotlib.pyplot as plt
# 默认情况下,Matplotlib 对中文和负号都会显示为一个空框,需要指定字体和编码
# 设置中文显示和负号显示
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 设置图形风格
plt.style.use('ggplot')

#df = pd.read_excel(r"bai.xlsx")
df = pd.read_excel('bai.xlsx', sheet_name='Sheet1')
# 饼状图
temp = df.groupby('班级').sum().stack().unstack()
x_list = temp['语文']
label_list = temp.index
plt.figure(figsize=(5,5))
plt.pie(x_list,labels=label_list,autopct="%1.1f%%")
plt.title('班级语文总额占比')
plt.show()

结果

堆叠柱状图

代码

import pandas as pd
import matplotlib.pyplot as plt
# 默认情况下,Matplotlib 对中文和负号都会显示为一个空框,需要指定字体和编码
# 设置中文显示和负号显示
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 设置图形风格
plt.style.use('ggplot')

#df = pd.read_excel(r"bai.xlsx")
df = pd.read_excel('bai.xlsx', sheet_name='Sheet1')
# 堆叠柱状图
bmi_gender_group_sale = df.groupby(['班级','性别'])['数学'].sum()
bmi_gender_group_sale.unstack().plot(kind='bar',stacked=True,grid=False,title='班级、性别与数学占比')
plt.show()

结果

散点气泡图

代码

import pandas as pd
import matplotlib.pyplot as plt
# 默认情况下,Matplotlib 对中文和负号都会显示为一个空框,需要指定字体和编码
# 设置中文显示和负号显示
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 设置图形风格
plt.style.use('ggplot')

#df = pd.read_excel(r"bai.xlsx")
df = pd.read_excel('bai.xlsx', sheet_name='Sheet1')
# 散点气泡图
plt.figure(figsize=(9,5))
plt.scatter(df['语文'],df['数学'],s=df['英语'],alpha=0.8)
plt.title('语文与数学散点图')
plt.xlabel('语文')
plt.ylabel('数学')
plt.show()

结果

箱图

代码

import pandas as pd
import matplotlib.pyplot as plt
# 默认情况下,Matplotlib 对中文和负号都会显示为一个空框,需要指定字体和编码
# 设置中文显示和负号显示
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 设置图形风格
plt.style.use('ggplot')

#df = pd.read_excel(r"bai.xlsx")
df = pd.read_excel('bai.xlsx', sheet_name='Sheet1')
# 箱图
plt.boxplot(df['英语'])
plt.title('英语结构箱图')
plt.ylabel('英语')
plt.show()

结果