首页 > 解决方案 > 如何在python中为多个散点图制作一个循环?

问题描述

我正在尝试自动化大型数据框矩阵的绘图过程。目标是将每一列与另一列一起绘制。每列代表一个变量。另请参见下图。

Fe:性别与年龄、性别与体重指数、性别与吸烟、性别与类型等。

为了清楚起见,我将问题简化为下图: 在此处输入图像描述

最初,我尝试手动绘制每个组合。但这是一个相当耗时的练习,而不是我想要的。

我也试过这个(不工作):

variables = ["Sex", "Age", "BMI"]
for variable in variables:
plt.scatter(df.variable, df.variable)
plt.xlabel('variable')
plt.ylabel('variable')
plt.title('variable vs. variable')
plt.show()

欢迎任何帮助!

PS:如果将线性回归也纳入变量组合是一个简单的excersize,那也将不胜感激。

问候,

纳迪亚

标签: pythonplot

解决方案


您编码的内容将每列与自身进行对比。你描述的是一个嵌套循环。一个简单的升级是

col_choice = ["Sex", "Age", "BMI"]

for pos, axis1 in enumerate(col_choice):   # Pick a first col
    for axis2 in enumerate(col_choice[pos+1:]):   # Pick a later col
        plt.scatter(df.loc[:, axis1], df.loc[:, axis2])

认为这会产生一个可以接受的系列scatter

这有帮助吗?如果您想更加“Pythonic”,请查看itertools.product生成您的列选择。


推荐阅读