2012-03-26 29 views
3

私はpythonでmatplotlibの散布図としてプロットされたデータをいくつか削除しようとしています。 del self.plot1.lines[0]MatPlotLib散布図の削除

散布図を除去するために同等のコマンドがどのようなものです:私は、私が使用する「プロット」線データを削除するには、いくつかの散乱データといくつかの「プロット」線データ

をプロット?私はそれを見つけるように見えない。

答えて

1

散布図は、実際には線の集合です(正確に表示する円)。

散布図をプロパティにアクセスできるオブジェクトに保存すると、そのうちの1つがset_visibleと呼ばれます。次に例を示します。

""" 
make a scatter plot with varying color and size arguments 
code mostly from: 
http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/scatter_demo2.py 
""" 
import matplotlib 
import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.mlab as mlab 
import matplotlib.cbook as cbook 

# load a numpy record array from yahoo csv data with fields date, 
# open, close, volume, adj_close from the mpl-data/example directory. 
# The record array stores python datetime.date as an object array in 
# the date column 
datafile = cbook.get_sample_data('/usr/share/matplotlib/sampledata/goog.npy') 
#datafile = /usr/share/matplotlib/sampledata 
r = np.load(datafile).view(np.recarray) 
r = r[-250:] # get the most recent 250 trading days 

delta1 = np.diff(r.adj_close)/r.adj_close[:-1] 

# size in points ^2 
volume = (15*r.volume[:-2]/r.volume[0])**2 
close = 0.003*r.close[:-2]/0.003*r.open[:-2] 

fig = plt.figure() 
ax = fig.add_subplot(111) 
## store the scatter in abc object 
abc=ax.scatter(delta1[:-1], delta1[1:], c=close, s=volume, alpha=0.75) 
### if you comment that line of set False to True, you'll see what happens. 
abc.set_visible(False) 
#ticks = arange(-0.06, 0.061, 0.02) 
#xticks(ticks) 
#yticks(ticks) 

ax.set_xlabel(r'$\Delta_i$', fontsize=20) 
ax.set_ylabel(r'$\Delta_{i+1}$', fontsize=20) 
ax.set_title('Volume and percent change') 
ax.grid(True) 

plt.show() 
+0

私が(または私が尋ねたと思う)ものが役に立ったが、それほど役に立ちませんでした。 – Poik

4

Oz123's answer部分的にこの質問に答えるが、彼の解決策は、直線的にメモリ内にあなたのプロットのサイズを膨らませるでしょう。たくさんのデータを扱っている場合、これはオプションではありません。

ありがたいことに、scatterplotオブジェクトのメソッドの1つはremoveです。

abc.set_visible(False)abc.remove()に変更すると、散布図が実際には表示されずにプロットから実際に削除されることを除いて、結果は同じに見えます。

+0

共有ありがとう! – Oz123