2017-11-02 3 views
0

私はmatplotlibを使って基本的なプログラムを作っています。これは多数の点をグラフ化し、それらの点を色付けするための値を計算します。私の問題は、ポイントの数が非常に多くなると、forループを通して各ポイントを個別にプロットするのにかかる時間も非常に長くなるということです。 1つのプロットステートメントを使用し、各ポイントの色を使用するためのリストを指定する方法はありますか?例として、 現在の方法:各点についてそれぞれの色を使用することになりリストを使用してmatplotlibの色を決定する

plot(x,y,'o', color=colours) 

:私が使用したいものを一方

colours = [(1,0,0),(0,1,0),(0,1,1)] #The length of these lists is usual in the thousands 
x = [0,1,2] 
y = [2,1,0] 

for i in range(len(colours)): 
    plot([x[i]],[y[i]],'o', color = colours[i]) 

は、より多くのようなものになるだろう。 forループよりもこれにアプローチする方法はありますか?

答えて

1

plotではなく、scatterを使用します。完全に働いた

import matplotlib.pyplot as plt 

colours = [(1,0,0),(0,1,0),(0,1,1)] 
x = [0,1,2] 
y = [2,1,0] 

plt.scatter(x,y, c=colours) 

plt.show() 

enter image description here

+0

はい!迅速な対応をありがとう。これは3Dスキャッタでも使えますか? –

+1

はい、違いはありません。 – ImportanceOfBeingErnest

関連する問題