〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
1274 re(7):sizeとxrangeの比率による棒グラフの幅の不揃い |
2006/5/24(水)21:21 - 竹の - nolm01.iee.niit.ac.jp - 941 hit(s)
詳細なデータありがとうございました。現象は把握しました。
# ただ、xtics が真中位までなんで、これだと重なって読めないですね
PNG はデフォルトは 横は 640 ですが、set size で倍にしているので、
1280 幅なので、「1 pixel 幅か 2 pixel 幅」ではなくて、多分「2 pixel
幅か 3 pixel 幅」になっているんだと思います。
src/graphics.c の plot_boxes() のソースを見てみましたが、確かに出力
の前に整数に丸める部分 (map_x(dxl), map_x(dxr)) があって、そこで 2 や
3 のずれが出る可能性があるようです。
で、これを回避して、固定ドット幅にする方法ですが、画面サイズは margin
も含めて計算されるので、それを一旦なくしてしまって、あらためて margin
を作ってやるとなんとかなりそうです。ただ、1272 の記事のような横長のグ
ラフだとさらに工夫が必要でしょう。普通のサイズのでよければ以下のよう
な具合です。
----- ここから -----
set term png
set out "file.png"
termwidth = 640
# termwidth = PNG terminal の横幅
set datafile separator ","
set lmargin 0
set rmargin 0
myxsize = 0.8
myxoffset = (1.0-myxsize)/2.0
# myxsize = 横方向の縮小率
# myxoffset = 原点のずらし
set multiplot
set size myxsize, 1.0
set origin myxoffset, 0.0
xm = 0.5
xmax = 200
set xrange [-xm:xmax+xm]
set yrange [0:8]
pwidth = 2
width = (pwidth-1.0)*(xmax+xm+xm)/(termwidth*myxsize)
# pwidth = box の pixelsize
# width = boxwidth に設定する値
set boxwidth width absolute
plot 'DatFile.dat' with boxes fill solid lt 1
unset multiplot
set out
----- ここまで -----
width の方で、pwidth-1.0 をやっているのは、plot_boxes() の方で
整数値に直した後で、幅 = 左 - 右 + 1 としているからです。
〔ツリー構成〕
┣【1274】 re(7):sizeとxrangeの比率による棒グラフの幅の不揃い 2006/5/24(水)21:21 竹の (1529) |
〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.