You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绘制X轴为时间、Y轴为金额的分段时间对应数值图表

时间-金额趋势图表实现方案

以下是两种最常用的可行实现路径,你可以根据自己的数据量和使用习惯选择:

方案1:电子表格工具实现(适合无代码基础用户,Excel、金山表格等工具通用)

  • 第一步:整理原始订单数据,至少保留3列核心字段:服务起始日期、服务结束日期、对应服务总金额,若按实收口径统计还需补充收款日期列
  • 第二步:生成连续日期序列作为X轴数据源,日期范围覆盖你所有订单的最早开始日期到最晚结束日期,每行对应1个自然日
  • 第三步:按你的统计规则计算每日收入:
    • 若按实收规则统计(收入算到收款当日):直接统计所有收款日期等于当日的订单金额总和即可,公式示例:=SUMIF(订单表!收款日期列, A2, 订单表!金额列),其中A2为当前行的日期单元格
    • 若按权责发生制统计(收入归属到服务发生日):统计所有服务周期覆盖当日的订单,按摊销规则计算当日对应收入,公式示例:=SUMIFS(订单表!金额列, 订单表!起始日期列, "<="&A2, 订单表!结束日期列, ">="&A2)
  • 第四步:选中「日期列+每日收入列」两列数据,插入折线图或柱状图,工具会自动识别日期为X轴、收入金额为Y轴,调整标签、配色等格式即可出图。

方案2:Python代码实现(适合批量处理大量数据、需要定期更新图表的场景)

  • 首先安装依赖库:pip install pandas matplotlib openpyxl
  • 参考代码示例:
import pandas as pd
import matplotlib.pyplot as plt

# 1. 读取本地表格数据,处理日期格式
df = pd.read_excel("你的本地表格文件路径.xlsx")
df["start_date"] = pd.to_datetime(df["服务起始日期"])
df["end_date"] = pd.to_datetime(df["服务结束日期"])
df["amount"] = df["服务总金额"]

# 2. 生成完整日期范围,计算每日收入
all_dates = pd.date_range(start=df["start_date"].min(), end=df["end_date"].max(), freq="D")
daily_income = []
for d in all_dates:
    # 此处为权责发生制统计逻辑,若要改为实收逻辑替换为对应筛选条件即可
    day_total = df[(df["start_date"] <= d) & (df["end_date"] >= d)]["amount"].sum()
    daily_income.append(day_total)

# 3. 组装数据并绘图
result_df = pd.DataFrame({"日期": all_dates, "当日收入": daily_income})
plt.figure(figsize=(12, 6))
plt.plot(result_df["日期"], result_df["当日收入"], linewidth=2)
plt.xlabel("日期")
plt.ylabel("收入金额")
plt.title("每日收入趋势图")
plt.xticks(rotation=45)
plt.tight_layout()
# 可保存为本地图片:plt.savefig("每日收入趋势.png")
plt.show()

内容的提问来源于stack exchange,提问作者Bee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:18:03