箱型图
# 制作
import pandas as pd
from matplotlib import pyplot as plt
path = "F:\pythonProject\dataprocessing\data\Steal user.csv"
data = pd.read_csv(path)
print(data.describe())
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure()
p = data.boxplot(return_type='dict') # 画箱线图。直接使用DataFrame的方法
x = p['fliers'][0].get_xdata() # 'fliers'即为异常值标签
y = p['fliers'][0].get_ydata()
y.sort() # 从小到大排序
# 用annotate添加注释 其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制 以下参数是经过调试的
for i in range(len(x)):
if i > 0:
plt.annotate(y[i], xy=(x[i], y[i]), xytext=(x[i] + 0.08, y[i]))
else:
plt.annotate(y[i], xy=(x[i], y[i]), xytext=(x[i] + 0.08, y[i]))
plt.title('3010-电量图')
plt.show()
柱状图
# 制作
import pandas as pd
from matplotlib import pyplot as plt
path = r"F:\pythonProject\dataprocessing\data\user.csv"
data = pd.read_csv(path)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
bins = [2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500, 8000]
labels = ['[2000,2500)', '[2500,3000)', '[3000,3500)', '[3500,4000)',
'[4000,4500)', '[4500,5000)', '[5000,5500)', '[5500,6000)',
'[6000,6500)', '[6500,7000)', '[7000,7500)', '[7500,8000)'] #类别的概念
data['sale分层'] = pd.cut(data.Eletricity, bins, labels=labels)
aggResult = data.groupby('sale分层').agg({'Eletricity': 'count'})
pAggResult = round(aggResult / aggResult.sum(), 2, ) * 100
plt.figure(figsize=(15, 6)) # 设置图框大小尺寸
pAggResult['Eletricity'].plot(kind='bar', width=0.7, fontsize=15, color='red') # 绘制频率直方图
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.title('3010-用户用电直方图', fontsize=20)
plt.show()
折线图
# 制作
import pandas as pd
from matplotlib import pyplot as plt
path = r"F:\pythonProject\dataprocessing\data\catering_sale_all.xls"
data = pd.read_excel(path)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(15, 7))
plt.plot(data['日期'], data['百合酱蒸凤爪'], color='green', label='百合酱蒸凤爪', marker='1')
plt.plot(data['日期'], data['翡翠蒸香茜饺'], color='red', label='翡翠蒸香茜饺', marker='2')
plt.plot(data['日期'], data['金银蒜汁蒸排骨'], color='skyblue', label='金银蒜汁蒸排骨', marker='3')
plt.plot(data['日期'], data['乐膳真味鸡'], color='cyan', label='乐膳真味鸡', marker='4')
plt.plot(data['日期'], data['蜜汁焗餐包'], color='white', label='蜜汁焗餐包', marker='s')
plt.plot(data['日期'], data['生炒菜心'], color='black', label='生炒菜心', marker='p')
plt.plot(data['日期'], data['铁板酸菜豆腐'], color='magenta', label='铁板酸菜豆腐', marker='h')
plt.plot(data['日期'], data['香煎韭菜饺'], color='pink', label='香煎韭菜饺', marker='+')
plt.plot(data['日期'], data['香煎罗卜糕'], color='orange', label='香煎罗卜糕', marker='d')
plt.plot(data['日期'], data['原汁原味菜心'], color='aquamarine', label='原汁原味菜心', marker='o')
plt.legend() #显示图例
plt.ylabel('销售量')
plt.title('3010-菜品销售量')
plt.show()
饼图
# 制作
import pandas as pd
from matplotlib import pyplot as plt
path = r"F:\pythonProject\dataprocessing\data\dish_sale.xls"
data = pd.read_excel(path)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = data['A部门']
labels = data['月份']
#画图
plt.figure(figsize=(8, 6)) #设置画布大小
plt.pie(x, labels=labels) #绘制饼图
plt.title('3010-A部门每月份工作情况')
plt.axis('equal')
plt.show()
散点图
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-4 , 2 , 50)
y = np.exp(x) - x - 1
plt.figure(figsize=(8, 4))
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.title('3010-画图')
plt.scatter(x,y,c='orange')
plt.show()