2015-10-20 80 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