gpt4 book ai didi

Python:绘制使用 `period_range` (pandas) 创建的数据时出错

转载 作者:行者123 更新时间:2023-12-05 03:05:08 24 4
gpt4 key购买 nike

我在绘制使用 pandas date_rangeperiod_range 创建的时间序列数据时遇到问题。前者有效,但后者无效。为了说明问题,请考虑以下内容

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

# random numbers
N = 100
z = np.random.randn(N)
ts = pd.DataFrame({'Y': z, 'X': np.cumsum(z)})

# 'date_range' is used
month_date = pd.date_range('1978-02', periods=N, freq='M')
df_date = ts.set_index(month_date)

# 'period_range' is used
month_period = pd.period_range('1978-02', periods=N, freq='M')
df_period = ts.set_index(month_period)

# plot
plt.plot(df_date);plt.show()
plt.plot(df_period);plt.show()

plt.plot(df_date) 给出了一个漂亮的数字,而 plt.plot(df_period) 生成了以下错误,我不明白:

ValueError: view limit minimum 0.0 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units<Figure size 432x288 with 1 Axes>

这是预期的结果吗?我在这里缺少什么?

顺便说一句,df_date.plot()df_period.plot() 都工作正常,没有问题。

提前致谢。

最佳答案

两个日期框的索引是不同类型的:

print(type(df_date))    # pandas.core.indexes.datetimes.DatetimeIndex
print(type(df_period)) # pandas.core.indexes.period.PeriodIndex

Matplotlib 不知道如何绘制 PeriodIndex

您可以 convert the PeriodIndex to a DatetimeIndex并绘制那个,

plt.plot(df_period.to_timestamp())

关于Python:绘制使用 `period_range` (pandas) 创建的数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51315526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com