物理のかぎしっぽ CO/アクセスログを描いてみよう/QandA

CO/アクセスログを描いてみよう

アクセスログを描いてみよう Q and A

疑問があれば一問一答形式でお答えします。
なお、質問文は後の参照のために一部改変させて頂くことがあります。

Q. 過去7日間の平均アクセス数を出したいのですが。(篠原さん)

A. tail, awk を組み合わせると楽です。

tail コマンドはテキストファイルの最後の N 行を表示するコマンドです。

コマンドラインで次のようにすると、過去7日間の平均値が得られるでしょう。

tail -7 daycount.log | awk 'BEGIN{n=0}{n+=$2}END{print n/7}'

実行結果は以下の通り。

[koizumi@supernova ~/access_log]$ tail -7 daycount.log | awk 'BEGIN{n=0}{n+=$2}END{print n/7}'
586.571
[koizumi@supernova ~/access_log]$

ありがとうございます!

COさん、ありがとうございます!! :) いくつか質問を追加しますので、よろしくお願いいたします。

Q. Cygwin でグラフが表示されない (NOBU さん)

この機会にgnuplotを憶えてみようと思います。

cygwinをdownloadし、cygwin上でgnuplotを使おうと試みています。
cygwin上で"gnuplot"とtypeすると"gnuplot>"と出て来ることを確認しました。
本によるとこの状態で"plot sin(X)"とtypeすると新しいwindowが開いてグラフが表示されるとあるのですが表示されません…。
unixでなくcygwin上で行おうとするの何か別の操作が必要なのでしょうか?

教えて下さい。よろしくお願いします。

A. X Window を立ち上げてください。

Cygwin で gnuplot を使って画面上にプロットする場合には X Window が立ち上がっていないといけません。
Cygwin コンソール上から

startxwin.sh &

または

startx &

と打ち込んで X Window を立ち上げ、 そのときに出てくるターミナル上から gnuplot を実行してみてください。

 どうもありがとうございました。

上記問題は無事解決しました。

Q. どんなときに X Window を立ち上げる必要があるのですか?(NOBUさん)

どんなときCygwin上で操作を行い、どんなときX windowを立ち上げる必要があるのか、大まかな説明をして頂けますか。

A. 別ウィンドウを開く必要があるときです。

ふつうのコンソール画面は別ウィンドウを開くことを想定していません。 マルチウィンドウの機能を使うとき、X Window システムを立ち上げます。

Q. epsファイルを作った後は?(篠原さん)

gnuplotでepsファイルを作った後、どのようにpngファイルを作ったらよいのでしょうか?

A. convert コマンドを用いると良いです。

convert コマンドは画像に様々な処理を加えることができるツールです。 eps から png に変換するには以下のようにします。

convert input.eps output.png

拡張子を自動で判別して変換してくれます。もし出来上がったファイルが 90度回転していたら

convert -rotate 90 input.eps output.png

というようにしてください。eps の解像度を指定したい場合には

convert -density 100x100 input.eps output.png

というように 縦x横 を dpi 単位で指定します。png に変換する場合は出力される画像サイズが変化します。

出力画像を透過 png にしたい場合には

convert input.eps -transparent white output.png

とします。white は透過色を指定しています。なお、この方法で作成した png は IE だと透過して表示されません。 IE でも透過されるようにするには

convert input.eps -transparent white -colors 256 output.png

というように色数を 256色に指定します。

なお、gnuplot では最初から png で出力することもできます。 その場合には terminal を png に変更します。

set term png

ただし postscript を出力する場合に比べて見た目が少し貧弱な気がするので、 いったん eps を経由して png に変換しています。

Thanks!

ありがとうございます! convertというコマンドは発見していたのですが、使い方がわからず苦戦していました。 助かりました :)

Q. 横軸の文字を回転させるには?(篠原さん)

filesample.pngのように、横軸の文字が重なってしまいます。 :(
COさんの作られたページでは横軸の文字が斜めになっているのですが、どのようにしているのでしょうか?

A. xtics を設定して下さい。

xtics の設定を変更して下さい。文法は次の通りです。
(これは gnuplot から help xtics で見られます。)

Syntax:
      set xtics {axis | border} {{no}mirror} {{no}rotate {by <ang>}}
                {  autofreq
                 | <incr>
                 | <start>, <incr> {,<end>}
                 | ({"<label>"} <pos> {<level>} {,{"<label>"}...) }
                { font "name{,<size>}" }
                { textcolor <colorspec> }
      unset xtics
      show xtics

横軸の tics を 290 度回転させるには次のように指定します。

set xtics rotate by 290

Thanks a lot!

ありがとうございます! gnuplot、奥が深いんですね。。。

Q. epsファイルがうまく開けません(NOBU)

初歩的な質問に丁寧に答えて下さりとても助かります。
どうもありがとうございます。
おかげさまでだいぶgnuplotが分かってきました :)
また一つ質問させて頂きます。

X Window上で

set term postscript eps enhanced colour
set output "test.eps"
plot x

と入力するとファイルができあがるのですが、illustratorで開くと図が表示されません。
何が問題でしょうか。

COさんの書いたplot01.gpもcygwin上で

gnuplot plot01.gp

と入力してできたファイルはうまく開けるのですが、XWindow上で

load plot01.gp

と入力してできたファイルはうまく開けません。

よろしくお願いします。

A. gv コマンドを試してみて下さい。

X Window を立ち上げて、コマンドラインから gv test.eps & として各場合のファイルを開いてみて下さい。
もしかすると illustrator では開けなくても gv では開けるかもしれません。
その場合、illustrator が gnuplot が出力する eps の形式に対応していない可能性もあります。

Q.gvでも開けませんでした。

他に何か考えられる原因はありますか?
試しにwindows版のgnuplotでも同じことをやってみたのですが、同じ症状が出てしまいました。

A. こちらで再現できません。

こちらで現象を再現することができません。
もう少し詳しく、こちらでも同じことが再現できるように手順を書いていただけますでしょうか。
あと、開けないというファイルをこのページに添付してみてください。

ちなみに

load plot01.gp

load "plot01.gp"

というようにしないとダメだと思います。

解決しました。

すいません、もう一度行ったらgvで開くことができました。
ちなみに行った操作はXWindow上でgnuplotと入力し

>gnuplot

のモードにした後

set term postscript eps enhanced colour
set output "test.eps"
plot x

と入力しました。 自分としては同じ操作を行ったつもりなので、何が変わったかは良く分かりませんでした。
またそれ以降、でき上がったepsファイルをillustratorで開けるようになりました。
ただ、epsファイルを作製した後に一度

>gnuplot

のモードからexitで抜けないとだめなようで、exitしなければファイルは作製されていますが前回同様見れませんでした。

出力が中途半端になってしまうから?

exit で抜けないとファイルが正常に作成されないのは、出力を閉じる操作が gnuplot を抜けることによって行われるからではないでしょうか。 たぶん、ターミナルを切り替えても良いと思います。

set term postscript eps enhanced colour
set output "test.eps"
plot x

set term x11

など。

Re:出力が中途半端になってしまうから?

set term postscript eps enhanced colour
set output "test.eps"
plot x

set term x11

を試してみましたがexitしない時と同じ症状がでてしまいました。
やはりexitしないと図が表示されません。 他に何か対策があれば教えて下さい。
よろしくお願いします。

ファイルロックの解除 (篠原)

プロットが終わった後に、ファイル名指定をしないで、

set output

を実行してみてください。

ファイルへのロックが解除され、ほかのアプリケーションからアクセスできるようになるはず・・・

(篠原)

どうもありがとうございました。

篠原さん、アドバイスどうもありがとうございます。
無事問題が解決しました。

Q. 三次元表示(NOBU)

もはやアクセスログとは関係なくて恐縮ですが、
円筒座標系(r,θ,z)のrに対するzの値(z(r)とでもいいますか)
をデータとして持っている場合にこれを三次元表示させることはできますか?
θに関しては対称なのでこのz(r)をぐるっと一回転させたグラフを描きたいのですが。

A. set mapping cylindrical を設定してください。

※ アクセスログと関係ない質問については "gnuplot FAQ" というページを作って移動させることにしましょう。(*゚▽゚)ノ

三次元座標系で円筒座標系を指定するには mapping で cylindrical を設定して下さい。

set mapping cylindrical

データ形式は θ, z, r の順です。 r は省略可能で、省略した場合は 1 になります。

データ形式が上記の順番になっていなくても using で指定することが可能です。 例えば r, θ, z の順に並んでいたら、

splot "datafile.dat" using ($2):($3):($1) with points

といった感じにしてやれば OK です。

ここの一番下に例があります。

どうもありがとうございます。

θに関するデータはなく、z(r)しかありません。θに関しては対称なので、値はθには依存しません。
データを加工してθのデータを書き込むことは可能ですが、面倒ではあります。
こういう場合、他に何か方法はないでしょうか?

P.S. "gnuplot FAQ"はどこに作ったら良いですかね?

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji Powered by PHP 5.3.29 HTML convert time to 0.025 sec.