第1关 各省gdp的和生成条状图
import pandas
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
data=pandas.read_excel("test/各省GDP.xlsx",dtype={"年份":str})
#代码开始
plt.figure(figsize=(10,10))
y = data.groupby(["年份"])["GDP"].sum()
x = y.index
plt.bar(x,y)
plt.title("GDP条状图")
#代码结束
plt.savefig("image1/gdptxt.jpg")
第2关 各省银行数量绘制饼图
import pandas
import matplotlib
matplotlib.use("agg")
import matplotlib.pyplot as plt
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
data=pandas.read_excel("test/银行信息.xlsx")
#代码开始
plt.figure(figsize=(10,10))
y = data.groupby(["省份"])["银行编号"].count()
x = y.index.map(lambda x:str(x)[:2])
plt.pie(y,labels=x)
plt.title("银行省份分布图")
#代码结束
plt.savefig("image2/yhbt.jpg")
第3关 各类银行数量绘制折线图
import pandas
import matplotlib
matplotlib.use("Agg")
import numpy as np
import matplotlib.pyplot as plt
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
data=pandas.read_excel("test/银行信息.xlsx")
#代码开始
plt.figure(figsize=(10,10))
y = data.groupby(["银行种类"])["银行编号"].count().sort_values(ascending=False).head(10)
x = y.index.map(lambda x:str(x))
plt.plot(x,y)
plt.title("银行种类折线图")
#代码结束
plt.savefig("image3/yhzxt.jpg")
第4关 各日超市销售金额绘制折线图
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import pandas as pd
import datetime
df=pd.read_excel("tbsc/step1/统计数据.xlsx",sheet_name="日期统计")
#代码开始
matplotlib.rcParams['font.family']='SimHei' #支持中文
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
plt.figure(figsize=(10,14))
plt.plot(df['日期'].dt.date,df['合计金额'])
plt.title('日期销售')
plt.gca().xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%Y-%m-%d'))
plt.xlim(datetime.date(2000,5,20),datetime.date(2000,7,18))
plt.xticks(pd.date_range('2000-5-20','2000-7-18'),rotation=90)
plt.xlabel('日期')
plt.ylabel('金额')
plt.ylim(0,1800)
#代码结束
plt.savefig("image4/rqzxt.jpg")
第5关 四种类别的销售数量合计最高的三种商品绘制多个条形图
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
#代码开始
matplotlib.rcParams['font.family']='SimHei' #支持中文
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
plt.figure(figsize=(10,14))
zt=['烟','饮料','零食','酒']
j=1
for x in zt:
df=pd.read_excel('tbsc/step2/类别销售.xlsx',sheet_name=x)
total=df.groupby(['商品名称'])['数量'].sum()
total.sort_values(ascending=False,inplace=True) #1、ascending=False:从大到小排列 2、inplace=True在源代码修改
total.index=total.index.str.replace('\t','')
total.head(3)
plt.subplot(2,2,j)
for i in range(0,3):
plt.bar(x=i*0.5,height=total[i],width=0.2,label=total.index[i])
plt.text(i*0.5,total[i]+1,total[i])
j=j+1
plt.xticks([0,0.5,1],[1,2,3])
plt.title(x)
plt.legend()
#代码结束
plt.savefig("image5/lbzxt.jpg")
第6关 销售各类别数据绘制饼图
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_excel("tbsc/step3/统计数据.xlsx",sheet_name="类别统计")
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
#代码开始
# plt.figure(figsize=(10,10))
# ma=df['合计金额'].mean()
# part=df.loc[['合计金额']>=(ma/5)]
# part1=df.loc[['合计金额']<(ma/5)]
# i = df3['合计金额'].sum()
# part.loc[len(part)]=['其他',x]
# plt.pie(
# part['合计金额'],
# labels=part['类别'],
# autopct='%.2f%%', # 格式化输出百分比
# )
# plt.title('各类别销售分布')
plt.figure(figsize=(10,10))
hjie=df['合计金额'].mean()
df2=df.loc[df['合计金额']>=(hjie/5)].copy()
df3=df.loc[df['合计金额']<(hjie/5)]
x=df3['合计金额'].sum()
df2.loc[len(df2)]=['其他',x]
plt.pie(df2['合计金额'],labels=df2['类别'],autopct='%3.2f%%')
plt.title('各类别销售分布')
#代码结束
plt.savefig("image6/lbbt.jpg")