Морской участок не показывает все участки с петлей - PullRequest
0 голосов
/ 17 января 2020
sns.set(style="darkgrid")
parm = ['ALTERSKATEGORIE_GROB', 'ANREDE_KZ', 'CJT_GESAMTTYP', 'FINANZ_MINIMALIST', 'FINANZ_SPARER', 'FINANZ_VORSORGER']

for y in parm:
    plot =  sns.countplot(x=y, data=azdias_under_20)
    print (plot);

Output:
AxesSubplot(0.125,0.125;0.775x0.755)
AxesSubplot(0.125,0.125;0.775x0.755)
AxesSubplot(0.125,0.125;0.775x0.755)
AxesSubplot(0.125,0.125;0.775x0.755)
AxesSubplot(0.125,0.125;0.775x0.755)

Я получаю вышеприведенный вывод и только один график (здесь не виден) последнего элемента списка ('' FINANZ_VORSORGER '). Это в блокноте Jupyter.
Почему я вижу не все сюжеты, а только последний?

Спасибо.

1 Ответ

1 голос
/ 17 января 2020

Поскольку вы не показываете график на каждой итерации, вы можете сделать это, используя matplotlib:

import matplotlib.pyplot as plt
sns.set(style="darkgrid")
parm = ['ALTERSKATEGORIE_GROB', 'ANREDE_KZ', 'CJT_GESAMTTYP', 'FINANZ_MINIMALIST', 'FINANZ_SPARER', 'FINANZ_VORSORGER']

for y in parm:
    sns.countplot(x=y, data=azdias_under_20)
    plt.show()

ОБНОВЛЕНИЕ Вы спросили, почему ваш код не работает. plt.show() - это метод, который показывает все графики, которые вы рисуете перед тем, как показывать. так что если вы нарисуете один график и напишите plt.show(), он покажет его. но если вы нарисуете много графиков, а затем напишите plt.show(), все они будут смешаны и покажут их все. для получения дополнительной информации проверьте эту ссылку . посмотрите на следующий пример:

>>> import matplotlib.pyplot as plt
>>> a = [1,2,3,4,5]
>>> b = [1,2,3,4,5]
>>> c = [2,3,4,5,6]
>>> d = [1,4,9,16,25]
>>> plt.plot(a,b)
[<matplotlib.lines.Line2D object at 0x00000180CF934C18>]
>>> plt.plot(a,c)
[<matplotlib.lines.Line2D object at 0x00000180CB39AA58>]
>>> plt.plot(a,d)
[<matplotlib.lines.Line2D object at 0x00000180CF934F60>]
>>> plt.show()

результирующий график будет:

enter image description here

...