我需要生成一行和两列的子图,以显示框图和数据帧中数据的直方图。 我尝试过:
plt.subplot(1,2,1)
df.boxplot(column=variable)
plt.subplot(1,2,2)
df.hist(column=variable)
但是我明白了:
我如何获得所需的东西?
df 是一个熊猫数据框,而变量包含感兴趣的列的名称。
答案 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'])
输出:
了解您必须输入有效的列名。要查看列的名称,请执行以下操作:
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])