102

プロット関数に渡すためにランダムな色を生成する方法の簡単な例は何ですか?

ループ内で scatter を呼び出しており、各プロットを異なる色にしたいと考えています。

for X,Y in data:
   scatter(X, Y, c=??)

c: 色。c は、単一の色フォーマット文字列、長さ N の一連の色仕様、または kwargs で指定された cmap とノルムを使用して色にマッピングされる一連の N 数値です (以下を参照)。c は、カラーマップされる値の配列と区別できないため、単一の数値 RGB または RGBA シーケンスであってはならないことに注意してください。ただし、c は、行が RGB または RGBA である 2 次元配列にすることができます。

4

12 に答える 12

86
for X,Y in data:
   scatter(X, Y, c=numpy.random.rand(3,))
于 2013-02-06T02:07:50.823 に答える
39

@ john-mee の回答を詳しく説明します。任意の長いデータがあるが、厳密に一意の色は必要ない場合:

Python 2 の場合:

from itertools import cycle
cycol = cycle('bgrcmk')

for X,Y in data:
    scatter(X, Y, c=cycol.next())

Python 3 の場合:

from itertools import cycle
cycol = cycle('bgrcmk')

for X,Y in data:
    scatter(X, Y, c=next(cycol))

これには、色を制御しやすく、短いという利点があります。

于 2015-01-29T19:25:00.600 に答える
19

データセットが 9 個未満の場合:

colors = "bgrcmykw"
color_index = 0

for X,Y in data:
    scatter(X,Y, c=colors[color_index])
    color_index += 1
于 2013-02-06T02:20:37.000 に答える