簡體   English   中英

在 matplotlib 中繪制熊貓日期

[英]Plot pandas dates in matplotlib

我有一個包含日期的固定寬度數據文件,但是當我嘗試繪制數據時,x 軸上的日期顯示不正確。

我的文件看起來像

2014-07-10 11:49:14.377102    45
2014-07-10 11:50:14.449150    45
2014-07-10 11:51:14.521168    21
2014-07-10 11:52:14.574241     8
2014-07-10 11:53:14.646137    11
2014-07-10 11:54:14.717688    14

等等

我用熊貓讀入文件

#! /usr/bin/env python
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_fwf('myfile.log',header=None,names=['time','amount'],widths=[27,5])
data.time = pd.to_datetime(data['time'], format='%Y-%m-%d %H:%M:%S.%f')
plt.plot(data.time,data.amount)
plt.show()

所以我想這里的問題是從 Pandas 到 matplotlib datetime 的轉換,如何進行轉換?

我也直接嘗試過熊貓:

data.time = pd.to_datetime(data['time'], format='%Y-%m-%d %H:%M:%S.%f')
data.set_index('time') # Fails!!
data.time.plot()

但這失敗了

類型錯誤:空“系列”:沒有要繪制的數字數據

如果您使用包含列名而不是字符串的列表,則 data.set_index 將起作用

以下應顯示 x 軸上的日期:

#! /usr/bin/env python
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_fwf('myfile.log',header=None,names=['time','amount'],widths=[27,5])
data.time = pd.to_datetime(data['time'], format='%Y-%m-%d %H:%M:%S.%f')
data.set_index(['time'],inplace=True)
data.plot()

#OR 
plt.plot(data.index, data.amount)

下面的代碼將繪制特定股票的日期和股價。 我想要 x 軸上的日期和 y 軸上的股票價格數據。 下面的代碼對我有用。

將 csv 加載到 Pandas 數據框中,只需將 csv 文件的所需列加載到數組中並使用plt(column_on_x_axis, column_in_y_axis, linestyle)繪制它當然,應該包括 matplotlib.pyplot。

data = pd.readcsv(your_file.csv)
date_array  = data['Date']
price_array = data['Prices']
plt.plot(date_array, price_array, linestyle = 'solid')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM