Создайте плотный график для каждого столбца в df с циклом ‘for’

#python-3.x #plotly-python

#python-3.x #plotly-python

Вопрос:

Я хочу создать несколько точечных графиков (по одному для каждого столбца) в df, используя for цикл в Python. Я также хочу иметь возможность отображать графики, введя имя столбца.

Смотрите пример кода:

 import plotly.express as px
import pandas as pd

df = pd.DataFrame({'A': [3, 1, 2, 3],
                   'B': [5, 6, 7, 8],
                   'C': [2, 1, 6, 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 и т.д.

Комментарии:

1. Мне не ясно, чего вы на самом деле хотите. Вы можете добавить графики в dict like plots = {i: px.scatter(df, x="A", y=i) for i in df.columns} , а затем вы можете отобразить каждый график с помощью plots['A'] , plots['B'] и plots['C'] .

2. Извините за плохое описание. Ваше решение сработало так, как я хотел. Если вы напишете это как ответ, я приму его 🙂 Спасибо

3. Хорошо, я это сделаю.

Ответ №1:

Вы можете добавить графики в dict, например

 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, x="A", y=i)
  

и затем вы можете отобразить каждый график с помощью plots['A'] , plots['B'] и plots['C']