python - 如何让我的数据框识别日期?
问题描述
我正在研究一个时间序列图,其中日期进展位于 x 轴上,该日期的相应值位于 y 轴上。
我的代码:
from dateutil.parser import parse
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
plt.rcParams.update({'figure.figsize': (10, 7), 'figure.dpi': 120})
# Import as Dataframe
df = pd.DataFrame({'date': ['2021-01-03', '2021-01-05', '2021-01-07', '2021-01-09'],
'value': ['3', '1', '2', '10']})
# Draw Plot
def plot_df(df, x, y, title="", xlabel='Days', ylabel='Tweets per day', dpi=100):
plt.figure(figsize=(16,5), dpi=dpi)
plt.plot(x, y, color='tab:blue')
plt.gca().set(title=title, xlabel=xlabel, ylabel=ylabel)
plt.show()
plot_df(df, x=df.index, y=df.value, title='Title')
解决方案
我在下面做了两个更改,第一个是转换为 datetime 对象:
df['date'] = pd.to_datetime(df['date'])
第二个是将 x 变量更改为正确的日期列,而不是绘图调用中的索引
plot_df(df, x=df['date'], y=df.value, title='Title')
完整代码如下供参考
# Import as Dataframe
df = pd.DataFrame({'date': ['2021-01-03', '2021-01-05', '2021-01-07', '2021-01-09'],
'value': [3, 1, 2, 10]})
df['date'] = pd.to_datetime(df['date'])
# Draw Plot
def plot_df(df, x, y, title="", xlabel='Days', ylabel='Tweets per day', dpi=100):
plt.figure(figsize=(16,5), dpi=dpi)
plt.plot(x, y, color='tab:blue')
plt.gca().set(title=title, xlabel=xlabel, ylabel=ylabel)
plt.show()
plot_df(df, x=df['date'], y=df.value, title='Title')
推荐阅读
- r - 使用两个数据框中的重叠值来提取另一列感兴趣的列
- three.js - 如何在不改变角度的情况下在屏幕上向上移动相机?(三.js)
- java - 如何使用并行流来执行此功能
- npm - Npm 脚本不运行包含 glob 模式的脚本
- react-native - 如何在 React Native 中将列文本组件定位在屏幕中间
- java - spring boot 测试注入资源依赖失败
- java - WireMock 验证 oAuth2RestTemplate
- c - 为什么向函数发送函数与发送函数地址相同?
- html - 视频结束时 video.captureStream 停止
- r - 如何将随机森林代码从公式界面更改为矩阵界面?