如何绘制直方图并在python中并排描述?

时间:2019-02-26 22:40:27

标签: python matplotlib seaborn

以下代码生成了我的数据集的描述以及一个直方图,一个在另一个之上...

get_ipython().magic(u'matplotlib inline')
import matplotlib.pyplot as plt
import seaborn as sns

sns.distplot(dfx.hits, bins=20)

dfx.hits.describe()

(而不是我期望的顺序。)

结果如下:

Description and histogram

但是我想要这些数字并排。这可能吗?

2 个答案:

答案 0 :(得分:3)

詹姆斯的建议使用子图很有帮助,但是没有这个问题的答案那么详细:

  

How to Display Dataframe next to Plot in Jupyter Notebook

Charles Parr的回答帮助我编写了这段代码:

fig = plt.figure(figsize=(10,4))

ax1 = fig.add_subplot(121)
ax1.hist(dfx.hits, bins=20, color='black')
ax1.set_title('hits x users histogram')

dfxx = dfx.hits.describe().to_frame().round(2)

ax2 = fig.add_subplot(122)
font_size=12
bbox=[0, 0, 1, 1]
ax2.axis('off')
mpl_table = ax2.table(cellText = dfxx.values, rowLabels = dfxx.index, bbox=bbox, colLabels=dfxx.columns)
mpl_table.auto_set_font_size(False)
mpl_table.set_fontsize(font_size)

生成直方图和描述的并排子图:

histogram and description side-by-side with python

答案 1 :(得分:2)

您将要使用matplotlib的内置子绘图来绘制(2,1)图,并将第一个图放置在(0,0),第二个图放置在(1,0)。 您可以找到不好的官方文档here

我建议您在python-course.eu here上查看该指南:

另外,其混乱的原因是因为您没有调用plt.show()或seaborn等价物,因此ipython在调用该图时将其吐到最后,而没有分配给其他位置。

类似于您是否拥有:

import matplotlib.pyplot as plt

plt.plot(range(10),range(10))
print("hello")

输出为:

>>hello
>>'Some Graph here'