Подтвердить что ты не робот

Matplotlib, как изменить figsize для matshow

Как изменить figsize для matshow() в ноутбуке jupyter?

Например, этот размер изменения размера кода

%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)

Но код ниже не работает

%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())
4b9b3361

Ответ 1

По умолчанию plt.matshow() создает свою собственную фигуру, поэтому в сочетании с plt.figure() будут созданы две цифры, а та, которая размещает график matshow, не та, которая имеет набор фигистов.

Есть два варианта:

  • Используйте аргумент fignum

    plt.figure(figsize=(10,5))
    plt.matshow(d.corr(), fignum=1)
    
  • Разделите matshow с помощью matplotlib.axes.Axes.matshow вместо pyplot.matshow.

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

Ответ 2

Улучшение решения с помощью @ImportanceOfBeingErnest,

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

Таким образом, вам не нужно отслеживать номера фигур.

Ответ 3

Решения не спомогли мне, но я нашел другой способ:

plt.figure(figsize=(10,5))
plt.matshow(d.corr(), fignum=1, aspect='auto')