带有熊猫图的子图

时间:2019-08-22 15:39:30

标签: python pandas matplotlib

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

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

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

但是我明白了:

image

我如何获得所需的东西?

  

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

2 个答案:

答案 0 :(得分:1)

  

使用:

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'])

输出:

enter image description here

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

df.columns.values.tolist()

在我的情况下:

 df3.columns.values.tolist()

出局:

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

答案 1 :(得分:0)

尝试一下:

fig, axes = plt.subplots(nrows=1, ncols=2)
axes[0].boxplot(df[variable])
axes[1].hist(df[variable])