38

多数のデータポイントを使用して累積分布関数をプロットしています。同じプロットに数本の線をプロットしています。これらの線は白黒で印刷されるため、マーカーで識別されます。私が欲しいのは、x次元で等間隔に配置されたマーカーです。私が得ているのは、データポイントごとに1つのマーカーです(ポイントの数を考えると、それらはすべて重複しています)

うまくプロットする方法を理解しているのか、matplotlibを理解していないだけなのかはわかりません。「マーカー頻度」の設定が見つかりません。

1つの行の簡単な解決策は、その行からN番目ごとの値を取得し、それをlinestyle =''の別の行として使用することですが、マーカーを垂直方向に揃えたいので、x配列が異なると異なる長さ。

# in reality, many thousands of values
x_example = [ 567, 460, 66, 1034, 275, 26, 628, 99, 287, 157, 705, 421, 1093, \ 
     139, 204, 14, 240, 179, 94, 139, 645, 670, 47, 520, 891, 450, 56, 964,   \
     1728, 99, 277, 356, 1628, 745, 364, 88, 112, 810, 816, 523, 401, 89,     \ 
     278, 917, 370, 53, 39, 90, 853, 356 ] 
x = sort(x_example)
y = linspace(0,1,len(x))

ax = subplot(1,1,1)
plots[w] = ax.plot(x,y, marker='o')
4

1 に答える 1

58

5点ごとにマークを付けることはできますplot(x,y,marker='o',markevery=5)が、等間隔でマークを設定するためのサポートは組み込まれていないと思います。マークを配置するxの位置を決定できます。たとえばnumpy.searchsorted、位置が間にあるデータポイントを見つけるために使用し、次に隣接するポイント間を補間してy座標を見つけることができます。

于 2010-01-11T17:49:57.270 に答える