Python 添加图例时,Seaborn绘图变为空白

Python 添加图例时,Seaborn绘图变为空白,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我刚从一本书中关于Seaborn的教程开始;'Python数据科学手册'。当我执行关于向绘图中添加图例的部分时,绘图图形变为空白 我在Spyder控制台中一行一行地输入了这些代码 import matplotlib.pyplot as plt import numpy as np rng = np.random.RandomState(0) x = np.linspace(0, 10, 500) y = np.cumsum(rng.randn(500, 6), 0) plt.plot(x, y

我刚从一本书中关于Seaborn的教程开始;'Python数据科学手册'。当我执行关于向绘图中添加图例的部分时,绘图图形变为空白

我在Spyder控制台中一行一行地输入了这些代码

import matplotlib.pyplot as plt
import numpy as np

rng = np.random.RandomState(0)
x = np.linspace(0, 10, 500)
y = np.cumsum(rng.randn(500, 6), 0)
plt.plot(x, y)

然后是

plt.legend('ABCDEF', ncol=2, loc='upper left');


无法理解为什么绘图图变为空白。我安装了Seaborn的最新版本。

您必须一起运行代码:

import matplotlib.pyplot as plt
import numpy as np

rng = np.random.RandomState(0)
x = np.linspace(0, 10, 500)
y = np.cumsum(rng.randn(500, 6), 0)
plt.plot(x, y)
plt.legend('ABCDEF', ncol=2, loc='upper left');
这导致:

但我们首先运行的是绘图,在单独的单元格图例上,我们将得到:


因为
plt.legend
本身试图在没有数据的空图上创建图例

您必须一起运行代码:

import matplotlib.pyplot as plt
import numpy as np

rng = np.random.RandomState(0)
x = np.linspace(0, 10, 500)
y = np.cumsum(rng.randn(500, 6), 0)
plt.plot(x, y)
plt.legend('ABCDEF', ncol=2, loc='upper left');
这导致:

但我们首先运行的是绘图,在单独的单元格图例上,我们将得到:


因为
plt.legend
本身试图在没有数据的空图上创建图例

尝试增加
ncol
。例如,
plt.legend('ABCDEF',ncol=20,loc='左上角')
@VanPeer,感谢您的澄清。在书中再次回顾了这个示例之后,作者确实同时执行了这两行。这真的是一个快速浏览页面,我想这两行是分别执行的。奇怪的是,为什么开发人员会这样构造代码。您在哪里使用seaborn?此外,我使用的代码与您输入的代码完全相同(导入除外),并且我在绘图中获得了图例。好的。@nahusznaj,如前所述,我输入了plot.plot(x)@nahusznaj,如我在帖子中所述,它是在我的Spyder IDE控制台中输入的。我排队了。。plot.plot(x,y),然后在我的控制台中按enter按钮,然后输入plt.legend。。。单独输入一行代码,然后按enter按钮,这就是错误所在。在一起输入两行代码(用分隔符分隔)后,我能够生成绘图。我没有包括与导入相关的两行,因为这些导入行是最少需要的。请尝试增加
ncol
。例如,
plt.legend('ABCDEF',ncol=20,loc='左上角')
@VanPeer,感谢您的澄清。在书中再次回顾了这个示例之后,作者确实同时执行了这两行。这真的是一个快速浏览页面,我想这两行是分别执行的。奇怪的是,为什么开发人员会这样构造代码。您在哪里使用seaborn?此外,我使用的代码与您输入的代码完全相同(导入除外),并且我在绘图中获得了图例。好的。@nahusznaj,如前所述,我输入了plot.plot(x)@nahusznaj,如我在帖子中所述,它是在我的Spyder IDE控制台中输入的。我排队了。。plot.plot(x,y),然后在我的控制台中按enter按钮,然后输入plt.legend。。。单独输入一行代码,然后按enter按钮,这就是错误所在。在一起输入两行代码(用分隔符分隔)后,我能够生成绘图。我没有包括与进口相关的两行,因为这些进口行是最低限度需要的。谢谢你的解释,布哈里先生。谢谢你的解释,布哈里先生。