2016-03-27 71 views
1

我有一個DataFrame有2列,一個是字符串格式的一系列時間日期,另一個是某個值。我想這個數據幀繪製成柱狀圖使用matplotlib在x軸上繪製帶時間數據的條形字符

這裏是我的代碼:

import matplotlib.pyplot as plt 
import pandas 

df = pandas.DataFrame({'a':['090000','093000','100000','103000'],'b':[2,3,4,5]}) 
df['a']=pandas.to_datetime(df['a'],format='%H%M%S') 

fig = plt.figure() 

ax1=fig.add_subplot(111) 

ax1.bar(df['a'],df['b']) 

,但我發現這個錯誤:

TypeError: float() argument must be a string or a number, not 'Timestamp' 

我怎樣才能解決這個問題?感謝

+0

這是奇怪的陰謀。我可以看到具有相同代碼的條形圖。你使用的是什麼版本的熊貓? –

+0

python 3.5 x64,我知道...我的一個朋友可以通過版本3.4 ... –

+0

使用pandas-0.17.1查看條形圖,即使使用pandas-0.18.0也會得到相同的類型錯誤。 .. –

回答

0

我從1.4.3版本升級matplotlib時1.5.1

再回到錯誤消失對Python 2.7版類似的問題。

0

我有同樣的問題(matplotlib 1.5.1)。在我的情況下,我可以通過將日期變量設置爲索引來解決它,然後根據數據幀索引繪製條形圖。即在上面的代碼中,繪圖之前,人們需要添加

df.set_index('a', inplace=True) 

,然後用

ax1.bar(df.index, df['b']) 
相關問題