2015-05-13 54 views
0

這是我想要做的,數據框的所有列的直方圖,但沒有網格軸。下面的代碼工作,但最好我想一個更好的解決方案(如將參數傳遞給HIST)如何讓網格軸對熊貓數據框hist()不可見?

%matplotlib inline 
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 

X = np.asarray([50]*25+[30]*10) 
X2 = np.asarray([90]*10+[20]*25) 
X3 = np.asarray([10]*15+[70]*20) 

df = pd.DataFrame(np.vstack([X, X2, X3]).T) 


def plot_hists(df, nbins=10, figsize=(8, 8), disable_axis_labels = True): 
    plt.close('all') 
    grid_of_ax_hists = df.hist(bins=nbins, figsize=figsize) 
    if disable_axis_labels: 
     for row in grid_of_ax_hists: 
      for ax in row: 
       ax.xaxis.set_visible(False) 
       ax.yaxis.set_visible(False) 
    plt.show() 

    df.hist() 
    plt.subplots() 

plot_hists(df, nbins=10, figsize=(8, 8), disable_axis_labels = True) 

回答

0

你可以試試:

fig = plt.figure(figsize=figsize) 
ax1 = fig.add_subplot(111) 
df.hist(bins=nbins, ax=ax1) 
ax1.grid(b=False) 
+0

遺憾的是不工作,我得到「UserWarning:可以輸出多種次要情節,包含傳遞的軸的身影正在清理 ‘被清除’,UserWarning」 ,然後是輸出還是有情節軸 –

1

即便如此這個線程是有點老了,我想添加一個工作解決方案,因爲我剛剛有同樣的問題。

至少在熊貓0.18

df.hist()採取所有可能的密謀關鍵字從pandas.DataFrame.plot

df.hist(grid=False) 

作品容易..而且也沒有必要處理matplotlib軸。