当前位置: 首页 > news >正文

使用python生成一个月度账单消费金额柱状图表

  1. 阿里云月度账单
  2. 根据月份、消费金额(可开票)生成一个柱状图表
import pandas as pd
import matplotlib.pyplot as plt
import os# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文的宋体# 获取当前工作目录下所有CSV文件
csv_files = [file for file in os.listdir() if file.endswith('.csv')]# 创建一个图表
fig, ax = plt.subplots(figsize=(12, 6))# 设置柱子的宽度
bar_width = 0.2# 遍历每个CSV文件
for idx, file in enumerate(csv_files):# 读取CSV文件df = pd.read_csv(file)# 将“账期”列转换为日期格式df['账期'] = pd.to_datetime(df['账期'].str.strip(), format='%Y-%m')# 过滤掉金额为0的数据df = df[df['消费(可开票)'] != 0]if not df.empty:# 将NaN值替换为0df['消费(可开票)'] = df['消费(可开票)'].fillna(0)# 获取表格名称table_name = file[:-4]# 计算柱子的位置,错开显示x_positions = [i + idx * bar_width for i in range(len(df))]# 绘制柱状图bars = ax.bar(x_positions, df['消费(可开票)'], width=bar_width, label=table_name, alpha=0.7)# 在每个柱子上添加文本标签,倾斜45度显示for bar in bars:height = bar.get_height()ax.annotate(f'{height:.2f}', xy=(bar.get_x() + bar.get_width() / 2, height),textcoords="offset points", xytext=(0, 5), ha='center', va='bottom', rotation=75)# 设置图表标题和标签
ax.set_title('年度账单消费情况(阿里云)')
ax.set_xlabel('月份')
ax.set_ylabel('消费金额(可开票)')# 使用自定义 x 轴标签
ax.set_xticks([i + (len(csv_files) - 1) * bar_width / 2 for i in range(len(df))])
ax.set_xticklabels(df['账期'].dt.strftime('%Y-%m'))# 添加图例
ax.legend()# 保存图表到本地
plt.savefig('bar_chart.png')
# 显示图表
plt.show()
http://www.lryc.cn/news/276594.html

相关文章:

  • 将一个独立的磁盘添加到已有的 `/` 分区
  • AI智能电销器人需要注意哪些问题呢
  • 呼叫中心研究分析:到2027年市场规模预计将达4966亿美元
  • 工业数据采集分析——工厂大脑 提升综合经济效益
  • python系列教程218——生成器表达式
  • jquery 实现简单的标签页效果
  • C++ Web框架Drogon初体验笔记
  • x-cmd pkg | busybox - 嵌入式 Linux 的瑞士军刀
  • Java异常简单介绍
  • ocrmypdf_pdf识别
  • 卷积神经网络|猫狗分类系列--导入kaggle猫狗数据集
  • 【linux 多线程并发】线程本地数据存储的两种方式,每个线程可以有同名全局私有数据,以及两种方式的性能分析
  • 2401d,d导入C的问题
  • SpringCloud GateWay实现路由限流
  • 打印日期c++
  • 数据结构入门到入土——链表(1)
  • MySQL C API的使用
  • JavaScript防御性编程
  • 微信预约小程序制作指南:从小白到专家
  • 向量数据库:Milvus
  • 亚马逊国际商品详情 API:获取特定商品详细信息的实践
  • MSB30M-ASEMI小贴片整流桥MSB30M
  • Redis启动方式
  • TEMU 新手小白必看!2024入驻流程/入驻类目/入驻资料等详细流程讲解
  • 【C语言】数组
  • 常见测试技术都有哪些?
  • Spring事务控制
  • swaggerUI不好用,试试这个openapiUI?
  • 嵌入式物联网项目开发实战例程-STM32F103系列之外围器件代码
  • Docker Compose--部署SpringBoot项目--实战