这是我想要做的,数据帧的所有列的直方图,但没有网格轴。下面的代码有效,但最好是我想要一个更优雅的解决方案(例如将参数传递给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 :(得分:1)
即便如此,这个帖子还是有点老了,我想添加一个有效的解决方案,因为我遇到了同样的问题。
至少在熊猫0.18
df.hist()从pandas.DataFrame.plot获取所有可能的绘图关键字
df.hist(grid=False)
很容易......并且不需要处理matplotlib轴。
答案 1 :(得分:0)
您可以尝试:
fig = plt.figure(figsize=figsize)
ax1 = fig.add_subplot(111)
df.hist(bins=nbins, ax=ax1)
ax1.grid(b=False)