Python的数据处理图标显示

文章介绍了如何使用Python处理本地Excel表格,包括绘制2022年和2023年双十一销售对比柱状图,以及北京9月和10月最高温和最低温的可视化。作者展示了如何通过OpenPyXL和Matplotlib库实现这些数据可视化任务。
摘要由CSDN通过智能技术生成

使用python对本地的表格进行处理,画出数据统计图,并且生成新的表格
1.双十一的2022年和2023年的销售对比图
新建一个表格2022.xlsx
在这里插入图片描述
新建第二个表格2023.xlsx
在这里插入图片描述
显示柱状图2022年的不同平台不同品类的销售情况
在这里插入图片描述
代码如下:

import numpy as np
import openpyxl
# 打开excel表格
import pandas
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 获取所有sheet名称
workbook=openpyxl.load_workbook("路径\\2022.xlsx")
sheet=workbook["Sheet1"]
#rows 按照行获取表单中所有的格子,每一行的数据放到一个元祖中
res=list(sheet.rows)
#获取excel表格中的第一行的数据,作为字典的key==》生成一个list列表
title=[i.value for i in res[0]]
print(title)
listtitle=title[1:4]
print(listtitle)
#作为每个字典的容器
cases=[]
datalist=[]
#遍历第一行意外的所有行

for item in res[1:]:
    #获取每行的数据
    data=[i.value for i in item[1:4]]
    # 把遍历的每行数据与第一行title数据打包成字典
    datalist.append(data)
print(datalist)

font = fm.FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf")
plt.xlabel('平台',fontproperties=font)
plt.ylabel('2022',fontproperties=font)
#x轴的坐标设计
plt.xticks(np.arange(3), ('淘宝','天猫','京东'),fontproperties=font)
#设计图的整体宽度和n,n越大柱越小因为width(单柱的宽度)越小,total越大柱子越宽
total_width,n=0.8,5
width=total_width/n
#柱子起始位置
x=np.arange(3)
#以下第一个参数为x轴上的偏移位
plt.bar(x,datalist[0], width=width, label='化妆品',color='#0066cc')
plt.bar(x+width,datalist[1], width=width, label='文具',color='#9ACD32')
plt.legend(prop=font)
plt.show()

如果想生成同一品类两年的销售对比图折线图
在这里插入图片描述
代码如下:

import numpy as np
import openpyxl
# 打开excel表格
import pandas
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 获取所有sheet名称
workbook=openpyxl.load_workbook("路径\\2022.xlsx")
sheet=workbook["Sheet1"]
#rows 按照行获取表单中所有的格子,每一行的数据放到一个元祖中
res=list(sheet.rows)
title=[i.value for i in res[0]]
print(title)
workbook=openpyxl.load_workbook("路径\\2023.xlsx")
sheet=workbook["Sheet1"]
#rows 按照行获取表单中所有的格子,每一行的数据放到一个元祖中
res2=list(sheet.rows)
title2=[i.value for i in res2[0]]
print(title2)
cases=[]
a=1
for item in res[1:]:
    dataline1=[i.value for i in item]
    dicline = dict(zip(title, dataline1))
    cases.append(dicline)
    for item in res2[a:]:
        dataline2=[i.value for i in item]
        dicline2=dict(zip(title,dataline2))
        cases.append(dicline2)
        a=a+1
        break
print(cases)
df = pandas.DataFrame(cases)
print(df)
df.to_excel('路径\\sum.xlsx')
workbook=openpyxl.load_workbook("路径\\sum.xlsx")
sheet=workbook["Sheet1"]
#rows 按照行获取表单中所有的格子,每一行的数据放到一个元祖中
res3=list(sheet.rows)
datanew=[]
for item in res3[1:]:
    #获取每行的数据
    data=[i.value for i in item[2:5]]
    # 把遍历的每行数据与第一行title数据打包成字典
    datanew.append(data)
print(datanew[0])
font = fm.FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf")
plt.xlabel('平台',fontproperties=font)
plt.ylabel('2022',fontproperties=font)
#x轴的坐标设计
plt.xticks(np.arange(3), ('淘宝','天猫','京东'),fontproperties=font)
#设计图的整体宽度和n,n越大柱越小因为width(单柱的宽度)越小,total越大柱子越宽
total_width,n=0.8,5
width=total_width/n
#柱子起始位置
x=np.arange(3)
#以下第一个参数为x轴上的偏移位
plt.plot(x,datanew[0], color='green',alpha=0.8,marker='o',linestyle='--',linewidth=1,label='化妆品2022')
plt.plot(x,datanew[1], color='red',alpha=0.8,marker='o',linestyle='--',linewidth=1,label='化妆品2023')
plt.legend(prop=font)

plt.show()

2.北京的天气报告,
画出北京9月5日,9月10日,9月15日,9月20日,9月25日,9月30日的最高温柱状图和北京10月5日,10月10日,10月15日,10月20日,10月25日,10月30日的最高温柱状图;(合并在同一张图上)
画出北京9月5日,9月10日,9月15日,9月20日,9月25日,9月30日的最高温和最低温的折线图;并求出温差最大的点
画出北京10月5日,10月10日,10月15日,10月20日,10月25日,10月30日的最高温和最低温的10月折线图;并求出温差最大的点
本地新建表格
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值