2017-09-13 73 views
0

我正在使用pandas,Python操縱DataFrame。 我的數據是10000(行)X 20(列),我正在想象它,​​就像這樣。熊貓dataframe.hist()更改副圖上的標題大小?

df.hist(figsize=(150,150)) 

但是,如果我做figsize更大,每個副區稱號,這是每個列的名稱,得到真正的小型或圖形相互重疊,這讓無法分辨。

有什麼聰明的方法來解決它?

謝謝!

+0

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.hist.html有一個'xlabelsize'參數,是你想要的嗎? –

+0

@cᴏʟᴅsᴘᴇᴇᴅ我不確定,我可以在哪裏使用該參數(?)? – jaykodeveloper

+0

作爲'hist'的第二個參數 –

回答

1

可能有更清潔的方法。這有兩種方法。

1)您可以設置次要情節的屬性,如

fig = df.hist(figsize=(50, 30)) 
[x.title.set_size(32) for x in fig.ravel()] 

enter image description here

2)另一種方法,是設置matplotlib rcParams默認參數

import matplotlib 

params = {'axes.titlesize':'32', 
      'xtick.labelsize':'24', 
      'ytick.labelsize':'24'} 
matplotlib.rcParams.update(params) 
df.hist(figsize=(50, 30)) 

enter image description here


默認公告

這是非常小的標籤和標題中的次要情節默認行爲。

matplotlib.rcParams.update(matplotlib.rcParamsDefault) # to revert to default settings 
df.hist(figsize=(50, 30)) 

enter image description here

0

我不會建議,使數字遠遠大於在每個維度10英寸。無論如何,這應該足以容納20個小區。而不是讓這個數字如此之大將保持字體大小合理。
爲了防止情節標題重疊,您可以直接致電plt.tight_layout()

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

df = pd.DataFrame(np.random.randn(1000,20)) 
df.hist(figsize=(10,9), ec="k") 

plt.tight_layout() 
plt.show() 

enter image description here

+0

@JohnGalt沒有特定的使用風格。圖片上方的代碼以及標準的matplotlib安裝會顯示圖片。當你運行這段代碼時它看起來不同嗎? – ImportanceOfBeingErnest

+0

啊,'ec =「k」'做到了這一點。 – Zero

+0

@JohnGalt我明白了。對於這一點,你可能會對[這篇文章]感興趣(https://stackoverflow.com/questions/43080259/no-outlines-on-bins-of-matplotlib-histograms-or-seaborn-distplots/43080772#43080772) – ImportanceOfBeingErnest