第三章数据分析作业

复制代码
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

##读取数据
url = r"E:\py mathph\JupyterLab-Portable-3.1.0-3.9\shujuwajue\data\catering_fish_congee.xls"
data = pd.read_excel(url,names=['date','sale'])

plt.rcParams['font.sans-serif'] = ['SimHei'] #显示中文
plt.rcParams['axes.unicode_minus'] = False

#箱型图
plt.figure()
p = data.boxplot(return_type=('dict'))
x = p['fliers'][0].get_xdata()
y = p['fliers'][0].get_ydata()
y.sort()
plt.title('季度销售额箱型图  3149') #加标题

# 直方图
bins = [0,500,1000,1500,2000,2500,3000,3500,4000]
labels = ['[0,500)','[500,1000)','[1000,1500)','[1500,2000)',
       '[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)'] 

data['sale分层'] = pd.cut(data.sale, bins, labels=labels)
aggResult = data.groupby(by=['sale分层'])['sale'].agg([("sale","count")])

pAggResult = round(aggResult/aggResult.sum(), 2, ) * 100

plt.figure(figsize=(10,6))  # 设置图框大小尺寸
pAggResult['sale'].plot(kind='bar',width=0.8,fontsize=10)  # 绘制频率直方图
plt.title('季度销售额频率分布直方图  3149',fontsize=20)
plt.show()
复制代码

 

 

 

 

复制代码
import pandas as pd
import matplotlib.pyplot as plt                #导入绘图包

plt.rcParams['font.sans-serif'] = ['SimHei']   #解决中文显示问题
plt.rcParams['axes.unicode_minus'] = False    # 解决中文显示问题

url = r"E:\py mathph\JupyterLab-Portable-3.1.0-3.9\shujuwajue\data\catering_dish_profit.xls"
data = pd.read_excel(url)

#饼图
plt.figure(figsize=(6,6))#将画布设定为正方形,则绘制的饼图是正圆
plt.pie(data['盈利'], labels=data['菜品名'])  
plt.title('菜品销售量分布饼图  3149') #加标题
plt.show()

#条形图
plt.figure(figsize=(8,4))
plt.bar(data['菜品名'],data['盈利']) 
plt.xlabel('菜品')
plt.ylabel('销量')
plt.title('菜品销售量条形图   3149') #加标题
plt.show()
复制代码

 

 

 

 

复制代码
import pandas as pd
import matplotlib.pyplot as plt                #导入绘图包

plt.rcParams['font.sans-serif'] = ['SimHei']   #解决中文显示问题
plt.rcParams['axes.unicode_minus'] = False    # 解决中文显示问题

url = r"E:\py mathph\JupyterLab-Portable-3.1.0-3.9\shujuwajue\data\dish_sale.xls"
data = pd.read_excel(url)

#画折线图对比数据
plt.figure(figsize=(12,8))
plt.plot(data['月份'],data['A部门'],color='green',label='A部门',marker='o')
plt.plot(data['月份'],data['B部门'],color='red',label='B部门',marker='s')
plt.plot(data['月份'],data['C部门'],color='skyblue',label='C部门',marker='x')
plt.xlabel('月份')
plt.ylabel('销售额(万元)')
plt.title('菜品销售量折线对比图    3149') #加标题
plt.legend() #显示图例
plt.show()
复制代码

 

 

复制代码
import numpy as np
import matplotlib.pyplot as plt                #导入绘图包
import math

plt.rcParams['font.sans-serif'] = ['SimHei']   #解决中文显示问题
plt.rcParams['axes.unicode_minus'] = False    # 解决中文显示问题

x=np.arange(0,2*math.pi,0.1)#以0.1为单位,生成0到6的数据
y=np.sin(x)

plt.figure(figsize=(12,8))
plt.plot(x,y,color='skyblue',label='f(x)=sin x',marker='o')
plt.title('f(x)=sin x的函数图象    3149') #加标题
plt.xlabel('X')
plt.ylabel('Y')
plt.legend() #显示图例
plt.show()
复制代码

 

 

复制代码
import pandas as pd
import matplotlib.pyplot as plt

df_normal=pd.read_csv("E:\py mathph\JupyterLab-Portable-3.1.0-3.9\shujuwajue\data/user.csv")
plt.figure(figsize=(8,4))
plt.plot(df_normal["Date"],df_normal["Eletricity"])
plt.xlabel("日期")
#设置x轴刻度间隔
x_major_locator=plt.MultipleLocator(7)
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
plt.ylabel("每日电量")
plt.title("用户电量趋势     3149")
plt.rcParams['font.sans-serif']=['SimHei']
plt.show()
复制代码

 

 

复制代码
import matplotlib.pyplot as plt
years=[2009,2010,2011,2012,2013,2014,2015,2016,2017]
turnovers=[0.5,9.36,52,191,350,571,912,1027,1682]
plt.figure()
plt.scatter(years,turnovers,c='blue',s=100,label='年份标签')
plt.xticks(range(2008,2017,2))
plt.yticks(range(0,3200,800))
plt.xlabel("Year",fontdict={'size':16})
plt.ylabel("Number",fontdict={'size':16})
plt.title("散点图  3149",fontdict={'size':20})
#legend标签位置
plt.legend(loc='best')
plt.show()
复制代码

 

 

复制代码
import pandas as pd
import numpy as np
x=np.linspace(0,2*np.pi,endpoint=True)
y=np.sin(x)
plt.figure()
plt.plot(x,y,'gp--') #绿色带星虚线
plt.xlabel("x",fontdict={'size':16})
plt.ylabel("y",fontdict={'size':16})
plt.legend("sin(x)")
plt.title("曲线图  3149")
plt.show()
复制代码

 

 

复制代码
#饼图import matplotlib.pyplot as plt
#The slices will be crdered and plotted counter-clockwise
labels='A','B','C','D'#定义标签
sizes=[25,30,35,10]#每一块的比例
colors=['yellowgreen','gold','lightskyblue','lightcoral']#每一块的颜色
explode=(0,0,0,0.2)#突出显示,这里仅仅突出显示第二块(即‘D’)

plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.lf%%',
shadow=True,startangle=90)
plt.axis('equal')#显示为圆(避免比例压缩为椭圆)
plt.title("带突出饼图  3149")
plt.show()
复制代码

 

 

import matplotlib.pyplot as plt
import numpy as np
x=np.random.randn(800)
#1000个服从正态分布的随机数
plt.hist(x,10)#分成10组绘制直方图
plt.title('随机数直方图    3149')
plt.show()

 

 

复制代码
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
import numpy as np
import pandas as pd

x=pd.Series(np.exp(np.arange(20)))#原始数据
plt.figure(figsize=(8,9))#设置画布大小
axl=plt.subplot(2,1,1)
x.plot(label='原始数据图',legend=True)
plt.title('使用plot(logy=True)函数进行绘图   3149')

axl=plt.subplot(2,1,2)
x.plot(logy=True,label='对数数据图',legend=True)
plt.show()
复制代码

 

 

复制代码
#绘制误差棒图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
import numpy as np
import pandas as pd

error=np.random.randn(10)          #定义误差列
y=pd.Series(np.sin(np.arange(10)))#均值数值列
y.plot(yerr=error)                 #绘制误差图
plt.title('误差棒图    3149')
plt.show()
复制代码

 

 

复制代码
import pandas as pd
catering_sale='E:\py mathph\JupyterLab-Portable-3.1.0-3.9\shujuwajue\data\catering_sale.xls'  #餐饮数据
data=pd.read_excel(catering_sale,index_col=u'日期')       #读取数据,指定“日期”列为索引列
print(data.describe)
import matplotlib.pyplot as plt #导入图像库
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False  #用来正常显示负号

plt.figure() #建立图像
p=data.boxplot(return_type='dict') #画箱型图,直接使用DetaFrame的方法
x=p['fliers'][0].get_xdata() #‘flies’即为异常值的标签
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.05-0.8/(y[i]-y[i-1]),y[i]))
    else:
        plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.08,y[i]))
        plt.title('箱型图 3149')
plt.show() #展示箱型图
复制代码

 

 

复制代码
math_scores = np.array([71,65,70,96,64])
chinese_scores = np.array([84,75,68,83,57])
english_scores = np.array([55,78,76,91,64])
figure2 = plt.figure(figsize = (10, 5))
figure2.add_subplot(1,1,1)
plt.xlabel("",fontsize = 14)
plt.ylabel("平均分", fontsize = 14)
plt.xticks(fontsize=14)
plt.yticks(fontsize=14)
plt.title("成绩条形图    3149", color='blue'fontsize=20)
plt.rcParams["font.sans-serif"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False
category = ["1班", "2班", "3班", "4班", "5班"]
index_category = np.arange(len(category))
bar_width = 0.25
plt.bar(index_category - bar_width, chinese_scores, width=bar_width, color=[0,0,1])
plt.bar(index_category, math_scores, width=bar_width, color=[0,1,0])
plt.bar(index_category + bar_width, english_scores, width=bar_width, color=[1,0,0])
plt.show()
复制代码

 

 

复制代码
import pandas as pd
import matplotlib.pyplot as plt                #导入绘图包

plt.rcParams['font.sans-serif'] = ['SimHei']   #解决中文显示问题
plt.rcParams['axes.unicode_minus'] = False    # 解决中文显示问题

url = r"E:\py mathph\JupyterLab-Portable-3.1.0-3.9\shujuwajue\data\catering_dish_profit.xls"
data = pd.read_excel(url)

#饼图
plt.figure(figsize=(6,6))#将画布设定为正方形,则绘制的饼图是正圆
plt.pie(data['盈利'], labels=data['菜品名'])  
plt.title('菜品销售量分布饼图  3149') #加标题
plt.show()

#条形图
plt.figure(figsize=(8,4))
plt.bar(data['菜品名'],data['盈利']) 
plt.xlabel('菜品')
plt.ylabel('销量')
plt.title('菜品销售量条形图   3149') #加标题
plt.show()
复制代码

 

posted @   giMh、Np  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示