2016-02-24 31 views
0

使用年數作爲標籤在下面的MWE,我year變量顯示在x軸爲0〜6,而不是實際的年數。爲什麼是這樣?python的ggplot不會對軸

import pandas as pd 
from pandas_datareader import wb 
from ggplot import * 

dat = wb.download(
    indicator=['BX.KLT.DINV.CD.WD', 'BX.KLT.DINV.WD.GD.ZS'], 
    country='CN', start=2005, end=2011) 
dat.reset_index(inplace=True) 

print ggplot(aes(x='year', y='BX.KLT.DINV.CD.WD'), 
     data=dat) + \ 
    geom_line() + theme_bw() 

回答

1

所有你需要做的是year列從objectdtypedatetime64轉換:

dat['year'] = pd.to_datetime(dat['year']) 

enter image description here

+0

這個完美的作品 - 你能補充幾句話解釋爲什麼蟒蛇ggplot選擇格式化X軸如此奇怪,而沒有轉換?我從字面上從來沒有見過任何圖形系統,試圖顯示2006年爲1 + 2.005e3 – Heisenberg

+0

不能確定,但​​在'year'列中的數據是'unicode'類型,這意味着ggplot具有解析它的一些數字在實際繪製之前就像'類型'一樣。解析器很可能有一些奇怪的行爲,導致1 + 2.005e3。我同意你的看法,這是一種奇怪的行爲。 –

+0

順便說一句,如果我的回答已經解決了您的問題,請考慮點擊複選標記(不僅給予好評)接受它。謝謝。 –