2015-10-20 78 views
2

使用pandas scatter_matrix,我将轴限制设置为与scatter_matrix默认值不同的值。请参阅编辑器中的以下代码:从编辑器vs控制台设置pandas scatter_matrix的轴限制

import pandas as pd 
import numpy as np 

df = pd.DataFrame(np.random.randn(1000,2), columns=list('AB')) 

axarr = pd.scatter_matrix(df) 
axarr[0,1].set_ylim(-10,10) 
axarr[0,1].set_xlim(-10,10) 

This works。但是,当我尝试从控制台执行相同操作时,它不会更新轴限制。也就是说,如果我输入

>>>> axarr[0,1].set_ylim(-100,100) 

情节只是保持不变。

为什么?

回答

1

在更新控制台中的图(我假设你使用ipython和%matplotlib魔术命令)之后,你只需要调用plt.draw()来更新图形。你也需要import matplotlib.pyplot as plt

所以:

In [1]: import pandas as pd 
In [2]: import numpy as np 
In [3]: import matplotlib.pyplot as plt 
In [4]: %matplotlib 

In [5]: df = pd.DataFrame(np.random.randn(1000,2), columns=list('AB')) 

In [6]: axarr = pd.scatter_matrix(df) 

enter image description here

In [7]: axarr[0,1].set_ylim(-10,10) 
Out[7]: (-10, 10) 
In [8]: axarr[0,1].set_xlim(-10,10) 
Out[8]: (-10, 10) 

In [9]: plt.draw() 

enter image description here

In [10]: axarr[0,1].set_ylim(-100,100) 
Out[10]: (-100, 100) 
In [11]: plt.draw() 

enter image description here

+0

还好吧....但是,为什么呢?为什么你需要从控制台调用plt.draw(),这在编辑器中是不必要的? – RickB

+0

你在用什么编辑器? – tom

+0

我在Windows上使用Spyder – RickB