2017-02-01 16 views
0

データの形状は(500000, 3)であり、最初の2つの列はx座標とy座標を表し、3番目の列はデータポイント@(X、Y)が属するラベル値。例えばmatplotlibで数千点のデータとそのラベル(グループ)をプロットする

: - data= [ [20,10, 12.3320], [22, 13, 230.221],.....[..] ]

Iは、以下の方法を試してみました。しかし、これはあまりにも時間がかかり、解釈が不十分です。

import matplotlib.pyplot as plt 

colors = 10*['r.','g.','b.','c.','k.','y.','m.'] 

for i in range(len(labels)): 
    plt.scatter(data[i][0], data[i][1], colors[labels[i]],marker='.') 

plt.show() 

良い解釈につながる上記のコードに適しているimshow()またはその他のような他の方法はありますか?あなたがピップまたはcondaでインストールすることができvispy 0.4.0と

作品:matlplotlibで

+0

データが等間隔である必要がありますimshow' '使用するためには、グリッド上にこれは本当ですか?あなたのデータが列にどのように構造化されているかもっと教えてください。 – ImportanceOfBeingErnest

+0

データ構造は、この配列([0.19975574、0.10402092、0.00029645]、 [0.19975574、0.10727158、0.00029645]、 [0.19975574、0.11052223、0.00029645]、 [0.19975574、0.11377289、0.00029645]、 [0.19975574、0.11702354のようなものです、0.00029645]、 [0.19975574、0.12027419、0.00029645]、 [0.19975574、0.12352485、0.00029645]、 [0.19975574、0.1267755、0.00029645]、 [0.19975574、0.13002616、0.00029645]、 [0.19975574、0.13327681、0.00029645] ,. ..........]) –

+0

各軸の単位分散を持つようにデータの縮尺が変更されています。 –

答えて

1

散布機能が遅い静かですが、私は多数の点をプロットするためにGPUを使用vispyを使用することをお勧めします:ここで

pip install vispy 

は(自分のコンピュータ上で2秒未満にプロット)のコードです:

import numpy as np 
from vispy import scene, visuals, app 
import matplotlib.pyplot as plt 

data = np.random.random((500000,3)) 

canvas = scene.SceneCanvas(keys='interactive', show=True) 
view = canvas.central_widget.add_view() 
# Create the scatter plot 
scatter = scene.visuals.Markers() 
scatter.set_data(data[:,:2], face_color=plt.cm.jet(data[:,2])) 
view.add(scatter) 
view.camera = scene.PanZoomCamera(aspect=1) 
view.camera.set_range() 
app.run() 

vispyのための素晴らしいドキュメントがあり、あなたはあなたのpをカスタマイズすることができますface_color、edge_color、サイズ、edge_width、記号のような引数を持つset_data機能がたくさん...

あなたのデータの視覚化と幸運;)

+0

マーカのない黒い画面が表示される場合は、vispyに問題があります。https://github.com/vispy/vispy/issues/1085 – wgwz

+0

こんにちは、私はipythonノートでこのコードを実行し、何も受け取りませんでした。何が問題なのか分かりますか? – xxx222

+0

ipythonノートブックではなく、pythonスクリプトとして起動してください:) –

関連する問題