0

私は PyX を使用しており、次のすべての四角形が最後の四角形の終了位置から開始するように、一連の四角形を作成しようとしています。コードは次のようになります。

//インデックス i のループの開始

back_pos = dep_list[i-1]
front_pos = list[i]
c.stroke(path.rect(back_pos, 0, front_pos, 1))

以下は、リスト内の値の一部です。基本的に、リストには昇順の番号が含まれています。

back_pos =  0.04  front_pos =  0.04
back_pos =  0.04  front_pos =  0.21
back_pos =  0.21  front_pos =  0.21
back_pos =  0.21  front_pos =  0.57
back_pos =  0.57  front_pos =  0.72

しかし、それを実行すると、次の図のようなものが得られます ここに画像の説明を入力

誰かが私が間違っていることを教えてもらえますか? どうすれば修正できますか?

psそのコードのY軸を変更して、長方形の開始点と終了点が見えるようにしました。ありがとう :)

4

1 に答える 1

0

あなたが書いdep_listたリストには増加する数字のリストが含まれているため、長方形の終了位置が含まれていると思います。さらに、 の 3 番目のパラメータはrect、終了位置ではなく、長方形の幅であることに注意してください。したがって、完全なコードは次のようになります。

from pyx import *

dep_list = [0.04, 0.21, 0.21, 0.57, 0.72]

c = canvas.canvas()

back_pos = 0
for i in range(len(dep_list)):
    if i == 0:
        width = dep_list[i]
    else:
        width = dep_list[i] - dep_list[i-1]
    c.stroke(path.rect(back_pos, 0, width, 1))
    back_pos += width

c.writePDFfile()

その結果:

出力例

別の方法で行うためのオプションがたくさんあります。簡単な例として、ループの最後の行にback_posなるように設定できます。dep_list[i]とにかく、私は非常に空想的で明白な方法でそれを書き込もうとしました. それが役立つことを願っています。

PS:i*0.1の代わりに0の 2 番目の引数を使用rectして、四角形を垂直方向にシフトすることができます。編集: 出力は次のようになります。

ここに画像の説明を入力

PPS: リストに0.212 つ含まれているため、1 つの長方形の幅はゼロです。

于 2015-02-19T08:41:40.893 に答える