Matplotlib如何为matshow改变figsize

chi*_*kiy 14 python matplotlib pandas

如何在jupyter笔记本中更改figsize for matshow()

例如,此代码更改图形大小

%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)
Run Code Online (Sandbox Code Playgroud)

但是下面的代码不起作用

%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())
Run Code Online (Sandbox Code Playgroud)

Imp*_*est 27

默认情况下,plt.matshow()会生成自己的图形,因此plt.figure()将创建两个图形,并且承载matshow图形的图形不是具有figsize集合的图形.

有两种选择:

  1. 使用fignum参数

    plt.figure(figsize=(10,5))
    plt.matshow(d.corr(), fignum=1)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用matplotlib.axes.Axes.matshow而不是使用绘制matshow pyplot.matshow.

    fig, ax = plt.subplots(figsize=(10,5))
    ax.matshow(d.corr())
    
    Run Code Online (Sandbox Code Playgroud)


Hae*_*eus 9

这些解决方案对我不起作用,但我找到了另一种方法:

plt.figure(figsize=(10,5))
plt.matshow(d.corr(), fignum=1, aspect='auto')
Run Code Online (Sandbox Code Playgroud)


Eli*_*sle 8

通过@ImportanceOfBeingErnest 改进解决方案,

matfig = plt.figure(figsize=(8,8))
plt.matshow(d.corr(), fignum=matfig.number)
Run Code Online (Sandbox Code Playgroud)

这样你就不需要跟踪数字。