matplotlibライブラリを使用して、それぞれが水平セグメント(またはポイント)で構成されるいくつかの「曲線」をプロットする必要があります。
NaNによってセグメントを分離するというこの目標を達成しました。これは私の例の(動作する)コードです:
from pylab import arange, randint, hold, plot, show, nan, ylim, legend
n = 6
L = 25
hold(True)
for i in range(n):
x = arange(L, dtype=float) # generates a 1xL array of floats
m = randint(1, L)
x[randint(1, L, m)] = nan # set m values as NaN
y = [n - i] * len(x) # constant y value
plot(x, y, '.-')
leg = ['data_{}'.format(j+1) for j in range(n)]
legend(leg)
ylim(0, i + 2)
show()
(実際、私は整数のリストから始めます:整数が欠落している場所の後にNaNが追加されます)
問題:各行には長さLの配列が必要であるため、 Lが大きい場合、このソリューションはメモリの点でコストがかかる可能性がありますが、必要十分な情報はセグメントの制限です。
たとえば、制限(0、500)と(915、62000)の2つのセグメントで構成される1つの行の場合、次のようにすると便利です。
niceplot([(0, 500), (915, 62000)], [(1, 1), (1, 1)])
(注:これは-代わりにplotを使用してniceplot ...-は機能するコードですが、他のものを作成します...)
62000*2の代わりに4*2の値...何か提案はありますか?
(これが私の最初の質問です、クレメントになります^^)