#python #pandas #seaborn
#python #pandas #seaborn
Вопрос:
У меня возникает проблема при попытке отобразить столбцы Pandas, используя для каждого цикла, когда я использую displot
вместо distplot
этого, он работает хорошо, кроме того, он показывает распределение только по всему миру, а не на основе его группы. Допустим, у меня есть список имен вызываемых столбцов columns
и фрейм данных Pandas n
, который имеет имя столбца class
. Цель состоит в том, чтобы показать график распределения на основе столбца для каждого класса:
for w in columns:
if w!=<discarded column> or w!=<discarded column>:
sns.displot(n[w],kde=True
но когда я использую distplot, он возвращает только первый столбец:
for w in columns:
if w!=<discarded column> or w!=<discarded column>:
sns.distplot(n[w],kde=True
Я все еще новичок в использовании Seaborn, поскольку я никогда не использую визуализацию и полагаюсь на численный анализ, такой как p-значение и корреляция. Любая помощь приветствуется.
Ответ №1:
Вероятно, вы получаете только цифру, соответствующую последнему циклу.
Поэтому вы должны явно запрашивать отображение изображения в каждом цикле.
import matplotlib.pyplot as plt
for w in columns:
if w not in discarded_columns:
sns.distplot(n[w], kde=True)
plt.show()
или вы можете сделать subplots
:
# Keep only target-columns
target_columns = list(filter(lambda x: x not in discarded_columns, columns))
# Plot with subplots
fig, axes = plt.subplots(len(target_columns)) # see the parameters, like: nrows, ncols ... figsize=(16,12)
for i,w in enumerate(target_columns):
sns.distplot(n[w], kde=True, ax=axes[i])