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

如何用Matplotlib构建基于两个日期差值的坐标轴?

用Matplotlib绘制JSON中日期字段的差值

当然可以用类似的方式计算日期差值,但有个关键前提:JSON里的startDate和endDate是字符串格式,必须先转换成Python的datetime对象才能直接相减,否则会触发类型错误。

下面是完整的实现流程:

  • 第一步:导入所需库

    import json
    from datetime import datetime
    import matplotlib.pyplot as plt
    
  • 第二步:加载并预处理JSON数据
    假设你的JSON数据已加载到data列表中,先把每个条目的日期字符串转成datetime对象:

    # 从文件读取JSON数据(如果是本地文件)
    with open('your_data.json', 'r') as f:
        data = json.load(f)
    
    # 转换日期格式,这里默认用ISO标准格式(如"2024-05-20"),非标准格式需调整参数
    for item in data:
        item['startDate'] = datetime.fromisoformat(item['startDate'])
        item['endDate'] = datetime.fromisoformat(item['endDate'])
    
  • 第三步:计算日期差值
    现在就能用你设想的列表推导式计算差值了,直接相减得到的是timedelta对象,Matplotlib可直接绘制;如果需要更直观的数值(比如天数),可以转换成整数:

    # 得到timedelta类型的差值列表
    y_axis_date_difference = [item["endDate"] - item["startDate"] for item in data]
    
    # 或者转换成天数(适合y轴显示具体数值)
    y_axis_days = [(item["endDate"] - item["startDate"]).days for item in data]
    
  • 第四步:用Matplotlib绘图
    假设你要基于JSON里的另一字段(比如target_value)作为x轴,日期差作为y轴:

    x_axis_values = [item['target_value'] for item in data]
    
    # 绘制天数差值的折线图
    plt.plot(x_axis_values, y_axis_days, marker='o')
    plt.xlabel('JSON中的目标字段')
    plt.ylabel('日期差值(天)')
    plt.title('日期差值与目标字段的关联')
    plt.show()
    

额外注意:

  • 如果你的日期是其他格式(如"20/05/2024"),需要用datetime.strptime()指定格式,例如datetime.strptime(item['startDate'], '%d/%m/%Y')
  • 建议添加异常处理,避免因个别条目日期格式错误导致程序崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:59:56