使用“ for”循环为df中的每一列创建Plotly图

问题描述

我想在Python中使用for循环在df中制作多个散点图(每列一个)。我还希望能够通过输入列名来显示图。

请参阅示例代码

import plotly.express as px
import pandas as pd

df = pd.DataFrame({'A': [3,1,2,3],'B': [5,6,7,8],'C': [2,3]})
df

     A    B    C
0    3    5    2
1    1    6    1
2    2    7    6
3    3    8    3

我最近得到的是这个

for i in df.columns:
i = px.scatter(df,x="A",y=i)

但这无法为每个图分配一个值。我希望能够通过输入A来显示A列的图,并通过输入B等来显示B的图。

解决方法

您可以将情节添加到像这样的字典中

plots = {i: px.scatter(df,x="A",y=i) for i in df.columns}

等效但短于

plots = {}
for i in df.columns:
    plots[i] = px.scatter(df,y=i)

然后可以使用plots['A']plots['B']plots['C']

显示每个图