【问题标题】:How to plot contour chart in python when we have date in X axis当我们在X轴上有日期时如何在python中绘制等高线图
【发布时间】:2019-12-27 07:17:40
【问题描述】:

我在 python 中绘制等高线图时遇到了一个问题,因为它给出了错误消息“值错误:无法将字符串转换为浮点数:03Dec2063”。我在 Excel 中有以下格式的数据。

最终到期 |男高音 |违反

2021 年 1 月 4 日 | 12 | 1.56

2021 年 1 月 4 日 | 12 | 1.74

2021 年 12 月 2 日 | 24 | 1.43

2021 年 12 月 2 日 | 24 | 1.26

......... | .. | ....

03Dec2063 | 48 | 1.18

错误只涉及最后一行日期,这很奇怪。我在这里附上我的代码。

谢谢,

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

path = r'C:\desktop\users\abc.xlsx'
data = pd.read_excel(path)
X,Y = np.meshgrid(data['FinalMaturity'],data['Tenor'])
plt.contourf(X,Y,np.average(data['Breach']))

【问题讨论】:

  • 等高线图需要 X 坐标的浮点值。在您的示例中:您需要将日期转换为数值(例如自 2021 年 1 月 1 日以来的天数)。
  • Pandas 可以将这样的字符串转换为日期,但您需要告诉它如何操作。快速搜索“pandas 将字符串转换为日期”

标签: python matplotlib plot contour contourf


【解决方案1】:

感谢您的建议@Alvaro Fuentes。我确实通过以下代码转换了时间戳中的日期。

for dat in range(len(data['FinalMaturity'])):
       new_date = dt.datetime.strptime(data['FinalMaturity'].iloc[dat], %d%b%y)
       timestamp = int(dt.datetime.timestamp(new_date))
       breach_date.append(timestamp)

【讨论】:

    猜你喜欢
    • 2018-01-17
    • 2016-06-24
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2015-06-01
    相关资源
    最近更新 更多