首页 > 解决方案 > 带有熊猫图的子图

问题描述

我需要生成一行和两列的子图,以显示箱形图和数据框中的数据直方图。我试过这个:

plt.subplot(1,2,1)
df.boxplot(column=variable)

plt.subplot(1,2,2)
df.hist(column=variable)

但我得到了这个:

图片

我怎样才能得到我需要的东西?

df是一个 pandas 数据框,变量包含感兴趣的列的名称。

标签: pythonpandasmatplotlib

解决方案


利用:

fig, axes = plt.subplots(nrows=1, ncols=2,figsize=(10,10))
axes[0].boxplot(df3[column])
axes[1].hist(df3[column])

例子

import pandas as pd
import matplotlib.pyplot as plt
df3 = pd.read_csv('df3')
%matplotlib inline
df3.head()

数据:

    a           b           c           d
0   0.336272    0.325011    0.001020    0.401402
1   0.980265    0.831835    0.772288    0.076485
2   0.480387    0.686839    0.000575    0.746758
3   0.502106    0.305142    0.768608    0.654685
4   0.856602    0.171448    0.157971    0.321231

按指定生成图形:

fig, axes = plt.subplots(nrows=1, ncols=2,figsize=(10,10))
axes[0].boxplot(df3['a'])
axes[1].hist(df3['b'])

输出:

在此处输入图像描述

了解您必须输入有效的列名。要查看列的名称,请执行以下操作:

df.columns.values.tolist()

就我而言:

 df3.columns.values.tolist()

出去:

['a', 'b', 'c', 'd']

推荐阅读