单变量上的Python箱线图
我试图用这个python循环打印数据集中每个变量的所有箱线图单变量上的Python箱线图,python,pandas,matplotlib,statistics,boxplot,Python,Pandas,Matplotlib,Statistics,Boxplot,我试图用这个python循环打印数据集中每个变量的所有箱线图 colNameList = list(df.columns) for i in range (0, len(df.columns)): df.boxplot(column=colNameList[i]) 其中df是我的数据集 为什么这个简单的代码只向我显示最后一个箱线图?IIUC,您需要为每列显示一个框,这是默认的 示例数据帧: df = pd.DataFrame({'col1':np.random.randint(0,9,
colNameList = list(df.columns)
for i in range (0, len(df.columns)):
df.boxplot(column=colNameList[i])
其中df是我的数据集
为什么这个简单的代码只向我显示最后一个箱线图?IIUC,您需要为每列显示一个框,这是默认的 示例数据帧:
df = pd.DataFrame({'col1':np.random.randint(0,9,100),
'col2':np.random.randint(2,12,100),
'col3':np.random.randint(4,14,100)})
>>> df.head()
col1 col2 col3
0 6 9 4
1 5 2 8
2 0 7 11
3 0 10 9
4 0 3 8
绘图:
df.boxplot()
如果只需要某些列:
df[['col1', 'col2']].boxplot()
# or
df.boxplot(column=['col1', 'col2'])
编辑根据您的评论,这里有一种方法可以将每个框保存为单独的箱线图,以便您可以单独查看它们
for i in df.columns:
df.boxplot(column=i)
plt.savefig('plot'+str(i)+'.png')
plt.close()
IIUC,您希望每列都有一个框,这是的默认值 示例数据帧:
df = pd.DataFrame({'col1':np.random.randint(0,9,100),
'col2':np.random.randint(2,12,100),
'col3':np.random.randint(4,14,100)})
>>> df.head()
col1 col2 col3
0 6 9 4
1 5 2 8
2 0 7 11
3 0 10 9
4 0 3 8
绘图:
df.boxplot()
如果只需要某些列:
df[['col1', 'col2']].boxplot()
# or
df.boxplot(column=['col1', 'col2'])
编辑根据您的评论,这里有一种方法可以将每个框保存为单独的箱线图,以便您可以单独查看它们
for i in df.columns:
df.boxplot(column=i)
plt.savefig('plot'+str(i)+'.png')
plt.close()
如果要为每个变量单独绘制一个图,只需将plt.show()放在for循环中:
import matplotlib.pyplot as plt
import pandas as pd
for i in df.columns:
df.boxplot(column=i)
plt.show()
您可以用一种更具python风格的方式编写代码:df.colums已经是一个列表,迭代在列表上完成如果您想为每个变量单独绘制一个图,只需将plt.show()放在for循环中:
import matplotlib.pyplot as plt
import pandas as pd
for i in df.columns:
df.boxplot(column=i)
plt.show()
您可以用一种更具python风格的方式编写代码:df.colums已经是一个列表,迭代是在列表上完成的如果我想在循环中完成并为每个变量显示它,您的意思是为每个变量单独绘制一个图吗?如果我想在循环中完成并为每个变量显示它,您的意思是为每个变量单独绘制一个图吗?plt是什么@因为plt是一个图书馆,我不能抱歉,我的名声很差。我是新来的@joe什么是plt@因为plt是一个图书馆,我不能抱歉,我的名声很差。我是新来的@Joe