python - 如何在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,那也将不胜感激。
问候,
纳迪亚
解决方案
您编码的内容将每列与自身进行对比。你描述的是一个嵌套循环。一个简单的升级是
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
生成您的列选择。
推荐阅读
- c# - 如何在 EF 中重用 where 子句
- r - 在ggplot中使用条形图时出现意外的x轴刻度线
- c# - “netsh”命令的替代 -> 对象的使用?
- javascript - 是否可以将全尺寸图像从网站拖放到仅显示缩略图的资源管理器
- spring - 在spring boot中构建jar文件时出错
- python - 在 tkinter 中交互式验证条目小部件内容(第 2 部分 - 更改条目对象的属性)
- mysql - node-mysql res.json(rows) 返回带反斜杠的引号
- css - 使用 css 执行分词后添加缩进
- php - 如何在php中计算缺勤时间
- mysql - 如何使用 logstash(不重复)从 MySQL 动态更新我的数据?