#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']