16

数量 y とその誤差 yerr を持つ時系列データがあります。垂直方向のエラーバー (yerr) を使用して、フェーズ (つまり、時間 / 期間 % 1) に対して y を示すプロットを作成したいと思います。このために、私は通常 pyplot.errorbar(time, y, yerr=yerr, ...) を使用します

ただし、カラーバー/マップを使用して、この同じプロットで時間の値を示したいと思います。

したがって、私が行うことは次のとおりです。

pylab.errorbar( phase, y, yerr=err, fmt=None, marker=None, mew=0 )
pylab.scatter( phase, y, c=time, cmap=cm )

残念ながら、これは単色のエラーバーをプロットします (デフォルトは青です)。プロットごとに最大 1600 個のポイントがあるため、これにより、散布図のカラーマップがエラー バーの後ろに消えます。ここに私が何を意味するかを示す写真があります:

ここに画像の説明を入力

散布図で使用されているものと同じカラーマップを使用してエラー バーをプロットする方法はありますか? エラーバーを1600回呼び出したくありません...

4

4 に答える 4

16

色を変更することに加えて、別の提案zorderとして、誤差範囲と散布図を変更することをお勧めします。これにより、ユーザーはデータに集中し、エラーの一般的な形を引き出すことができます (これはあなたの意図だと思います)。

from pylab import *

# Generate some random data that looks like yours
N = 1000
X = random(N)
Y = sin(X*5) + X*random(N)*.8
Z = random(N)
ERR = X*random(N)

# These are the new arguments that I used
scatter_kwargs = {"zorder":100}
error_kwargs = {"lw":.5, "zorder":0}

scatter(X,Y,c=Z,**scatter_kwargs)
errorbar(X,Y,yerr=ERR,fmt=None, marker=None, mew=0,**error_kwargs )
xlim(0,1)
show()

ここに画像の説明を入力

于 2012-04-18T15:25:44.357 に答える
0

で引数を使用するように、ecolorオプションの引数をpylab.errorbar使用できます。colorpylab.scatter

pylab.errorbar( phase, y, yerr=err, fmt=None, marker=None, mew=0, ecolor=time )
于 2012-04-18T14:38:32.023 に答える