头歌:实验十六 matplotlib数据可视化

第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")

  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值