web-dev-qa-db-fra.com

Le graphique Matplotlib ne s'affiche pas dans PyCharm

J'exécute le code suivant dans PyCharm 3.4.1, et il a mis en évidence %matplotlib inline montrant une erreur de syntaxe, et je supprime la première ligne et je lance, je m'attends à ce que cela m'invite à afficher des graphiques, mais il fonctionne normalement avec Process finished with exit code 0 , Et aucun graphique ne s'affiche.

Ma question est: 1. Qu'est-ce que %matplotlib inline utiliser pour; 2. Comment laisser pycharm afficher le graphique matplotlib?

%matplotlib inline
from IPython.core.pylabtools import figsize
import numpy as np
from matplotlib import pyplot as plt
figsize(11, 9)

import scipy.stats as stats

dist = stats.beta
n_trials = [0, 1, 2, 3, 4, 5, 8, 15, 50, 500]
data = stats.bernoulli.rvs(0.5, size=n_trials[-1])
x = np.linspace(0, 1, 100)

# For the already prepared, I'm using Binomial's conj. prior.
for k, N in enumerate(n_trials):
    sx = plt.subplot(len(n_trials) / 2, 2, k + 1)
    plt.xlabel("$p$, probability of heads") \
        if k in [0, len(n_trials) - 1] else None
    plt.setp(sx.get_yticklabels(), visible=False)
    heads = data[:N].sum()
    y = dist.pdf(x, 1 + heads, 1 + N - heads)
    plt.plot(x, y, label="observe %d tosses,\n %d heads" % (N, heads))
    plt.fill_between(x, 0, y, color="#348ABD", alpha=0.4)
    plt.vlines(0.5, 0, 4, color="k", linestyles="--", lw=1)

    leg = plt.legend()
    leg.get_frame().set_alpha(0.4)
    plt.autoscale(tight=True)


plt.suptitle("Bayesian updating of posterior probabilities",
             y=1.02,
             fontsize=14)

plt.tight_layout()
23
william007

Le % la notation est pour fonctions magiques . La fonction magique et l'argument particuliers auxquels vous faites référence, %matplotlib inline, est destiné à une session bloc-notes IPython . Vous obtiendrez une erreur de syntaxe en utilisant des fonctions magiques dans une session normale python.

Le %matplotlib la fonction magique est destinée à spécifier un backend pour matplotlib et l'argument inline produira une erreur si vous n'êtes pas dans une session de bloc-notes IPython.

Pour afficher votre tracé, vous devez utiliser plt.show pour une fenêtre interactive ou plt.savefig pour l'enregistrer dans un fichier. Par exemple,

plt.show()

ou

plt.savefig( 'myfig.png' )
38
Gabriel

l'intrigue avec une certaine valeur, a aidé à fournir la fenêtre où j'ai pu voir l'image. Par défaut, le mode interactif était faux. J'ai besoin d'activer le mode interactif. plt.interactive(True)

Ajoutez la commande plt.show après avoir tracé le graphique.

plt.show(10)
4
vinSan

J'ai obtenu mon intrigue à afficher en sélectionnant Modifier les configurations ... et sous Exécution, cochez la case Exécuter avec Python. Je viens d'utiliser plt.tight_layout (). Je n'étais pas dans un ordinateur portable.

0
Jerald Cogswell