web-dev-qa-db-fra.com

Matplotlib comment changer figsize pour matshow

Comment changer figsize pour matshow () dans le cahier jupyter?

Par exemple, ce code change la taille de la figure

%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd

d = pd.DataFrame({'one' : [1, 2, 3, 4, 5],
                  'two' : [4, 3, 2, 1, 5]})
plt.figure(figsize=(10,5))
plt.plot(d.one, d.two)

Mais le code ci-dessous ne fonctionne pas

%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd

d = pd.DataFrame({'one' : [1, 2, 3, 4, 5],
                  'two' : [4, 3, 2, 1, 5]})
plt.figure(figsize=(10,5))
plt.matshow(d.corr())
11
chinskiy

Par défaut, plt.matshow() produit son propre chiffre. Ainsi, en combinaison avec plt.figure(), deux chiffres seront créés et celui qui héberge le tracé de matshow n'est pas celui sur lequel figsize est défini.

Il y a deux options:

  1. Utilisez l'argument fignum

    plt.figure(figsize=(10,5))
    plt.matshow(d.corr(), fignum=1)
    
  2. Tracez le matshow en utilisant matplotlib.axes.Axes.matshow au lieu de pyplot.matshow.

    fig, ax = plt.subplots(figsize=(10,5))
    ax.matshow(d.corr())
    
17

Améliorer la solution par @ImportanceOfBeingErnest,

matfig = plt.figure(figsize=(8,8))
plt.matshow(d.corr(), fignum=matfig.number)

De cette façon, vous n'avez pas besoin de garder une trace des chiffres.

0
Elias Hasle