利用Python取出excel数据并生成统计图

取出excel数据生成图表

  • 帮朋友写的一个小脚本
  • 从excel中取出数据,然后生成一个统计图表
  • 借助了Python的第三方模块xlrd和pyecharts

xlrd

  • Python中用来读取excel数据的模块
  • 安装pip install xlrd
  • xlrd文档

pyecharts

  • Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。
  • pyecharts就是通过Python使用Echarts。
  • 安装pip install pyecharts
  • 注意
    • 现在有很多网上的使用pyecharts的版本都是v0.5.x的,现在安装都是v1版本的,两者差别还是蛮大的。
    • pyecharts 分为 v0.5.X 和 v1 两个大版本,v0.5.X 和 v1 间不兼容,v1 是一个全新的版本
    • pyecharts v1版本文档

代码分析

# 打开存储数据的excel
data = xlrd.open_workbook('C:\\Users\\Administrator\\Desktop\\新建文件夹\\个人-月\\12.xlsx')

# 以表格的形式取出数据
table = data.sheets()[0]

# 取出表格中第一列数据 
PM2_5 = table.col_values(0)

# 生成一个折线统计图对象
line = Line()
# 添加 x 轴元素
line.add_xaxis(handle_time_list(time[1:]))
# 添加 y 轴元素
line.add_yaxis('PM2.5', PM2_5[1:])

# 渲染到html页面
line.render('./person/12.html')
  • 代码很简单,就是表格中的数据较多。
    生成图片的大概样式

实现代码

from pyecharts.charts import Bar, Line
import xlrd


def handle_time_list(time_list):
    """
    处理float格式的时间数据为 年/月/日 小时:分钟
    time_list: 时间列表
    return: 处理好的时间数据列表
    """
    new_time_list = [xlrd.xldate_as_datetime(i, 0).strftime(r'%Y/%m/%d %H:%M') for i in time_list]
    return new_time_list

data = xlrd.open_workbook('C:\\Users\\Administrator\\Desktop\\新建文件夹\\个人-月\\12.xlsx')
table = data.sheets()[0]

PM2_5 = table.col_values(0)
PM10 = table.col_values(1)
CO = table.col_values(2)
NO2 = table.col_values(3)
SO2 = table.col_values(4)
O3 = table.col_values(5)
wind = table.col_values(6)
pressure = table.col_values(7)
water = table.col_values(8)
temperature = table.col_values(9)
humidity = table.col_values(10)
time = table.col_values(11)


line = Line()
line.add_xaxis(handle_time_list(time[1:]))
line.add_yaxis('PM2.5', PM2_5[1:])
line.add_yaxis('PM10', PM10[1:])
line.add_yaxis('CO', CO[1:])
line.add_yaxis('NO2', NO2[1:])
line.add_yaxis('SO2', SO2[1:])
line.add_yaxis('O3', O3[1:])
line.add_yaxis('风速', wind[1:])
line.add_yaxis('压强', pressure[1:])
line.add_yaxis('降水量', water[1:])
line.add_yaxis('温度', temperature[1:])
line.add_yaxis('湿度', humidity[1:])
line.render('./person/12.html')
  • 想查看excel表格数据大致结构的可以点这里

总结

  • Python还是很强大的!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值