これはmatplotlibの1.1を使用して、私の作品:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(10)
y = np.sin(x)
plt.scatter(x, y, marker='+', s=150, linewidths=4, c=y, cmap=plt.cm.coolwarm)
plt.show()
結果:あるいは
を、n個の点については、N(形状のRGBカラー値のアレイを作る3 )、キーワードscatter()
のedgecolors
に割り当てます。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 20, 100)
y = np.sin(x)
z = x + 20 * y
scaled_z = (z - z.min())/z.ptp()
colors = plt.cm.coolwarm(scaled_z)
plt.scatter(x, y, marker='+', edgecolors=colors, s=150, linewidths=4)
plt.show()
結果:例では、範囲[0,1]にz
値をスケーリングし、スケーリングされたカラーマップ値をplt.cm.coolwarm
呼び出すことによって、RGBA値を取得すること
。このように呼び出されると、matplotlibカラーマップはRGBA値の配列を返し、各行は対応する入力値の色を与えます。例:
>>> t = np.linspace(0, 1, 5)
>>> t
array([ 0. , 0.25, 0.5 , 0.75, 1. ])
>>> plt.cm.coolwarm(t)
array([[ 0.2298, 0.2987, 0.7537, 1. ],
[ 0.5543, 0.6901, 0.9955, 1. ],
[ 0.8674, 0.8644, 0.8626, 1. ],
[ 0.9567, 0.598 , 0.4773, 1. ],
[ 0.7057, 0.0156, 0.1502, 1. ]])
私は 'marker = '+''を設定すると色付きの '+'シンボルが得られます。 – Avaris
@Avaris:私のためにも動作します。それに応じて私の答えを更新しました。 –