2014-10-03 50 views
1

我正在學習「R晶格」透視圖的python pandas + matplotlib + seaborn繪圖和數據可視化。我仍然得到我的腿。這是一個基本的問題,我無法正確工作。這裏的例子:在seaborn分面散點圖格式datetime

# envir (this is running in an iPython notebook) 
%pylab inline 

# imports 
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn as sns 

# generate some data 
nRows = 500 
df = pd.DataFrame({'c1' : np.random.choice(['A','B','C','D'], size=nRows), 
       'c2' : np.random.choice(['P','Q','R'], size=nRows), 
       'i1' : np.random.randint(20,50, nRows), 
       'i2' : np.random.randint(0,10, nRows), 
       'x1' : 3 * np.random.randn(nRows) + 90, 
       'x2' : 2 * np.random.randn(nRows) + 89, 
       't1' : pd.date_range('10/3/2014', periods=nRows)}) 

# plot a lattice like plot 
# 'hue=' is like 'groups=' in R 
# 'col=' is like "|" in lattice formula interface 

g = sns.FacetGrid(df, col='c1', hue='c2', size=4, col_wrap=2, aspect=2) 
g.map(scatter, 't1', 'x1', s=20) 
g.add_legend() 

enter image description here

我想x軸以適當的日期時間格式情節,而不是作爲一個整數。我可以指定格式(例如,YYYY-MM-DD)作爲開始。

但是,如果檢查時間範圍並生成適當的比例將會更好。在該R格(和其他繪圖系統),如果x變量是一個日期,一個「漂亮」的功能將確定範圍較大,僅暗示YYYY(比如,用於繪製20年時間趨勢),YYYY-MM(對繪製幾年的東西)...或者YYYY-MM-DD HH:MM:SS格式用於高頻率時間序列數據(即每隔100 mS採樣一次)。這是自動完成的。這種情況下是否有類似的情況?在這個例子中

另外一個很基本的問題(我幾乎不好意思問)。我怎樣才能在這個情節上獲得一個頭銜?

謝謝!
Randall

回答

1

它看起來像seaborn does not support datetime on the axes in lmplot呢。然而,它確實有一些其他的地塊的支持。在此同時,我建議將您的需要的問題,在上面的鏈接,因爲它目前似乎沒有足夠的感知需要他們解決這個問題。


就標題而言,使用對象本身可以使用set_title()。這將是這個樣子:

. 
. 
. 
g = sns.FacetGrid(df, col='c1', hue='c2', size=4, col_wrap=2, aspect=2) 
g.map(scatter, 't1', 'x1', s=20) 
g.add_legend() 

然後只需添加:

g.set_title('Check out that beautiful facet plot!')