plt.show () не печатает plt.plot только plt.scatter - PullRequest
0 голосов
/ 24 апреля 2020

Итак, для следующего кода в блокноте jupyter не печатается график. Если я использую plt.scatter, то он создает график. Есть предложения, что может быть не так? Это может быть вызвано данными?

import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt


def calc_gauss(df, index):

    x=df.iloc[[index]]
    mean = df.apply(lambda x: x.mean(), axis=1)
    mu=mean.iloc[[index]]
    std = df.std(axis=1)
    sig=std.iloc[[index]]

    dens = norm.pdf(x,mu,sig)

    # build the plot
    fig, ax = plt.subplots(figsize=(9,6))
    plt.style.use('fivethirtyeight')
    ax.plot(x, dens)
    return plt.show()

calc_gauss(df_distance, 339)

1 Ответ

1 голос
/ 24 апреля 2020

Вместо

return plt.show()

используйте

fig.show()

Если вы хотите, чтобы изображение отображалось в записной книжке, используйте %matplotlib inline в ячейке, оцененной перед командой show

Примечание Проблема заключалась в том, что массивы были в форме (1,24). Сюжет любит только одномерные массивы. Замена ax.plot(x, dens) на ax.plot(x.reshape(-1), dens.reshape(-1)) решила проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...