X



gnuplot を使おう。 その3
0433名無しさん@お腹いっぱい。
垢版 |
2016/03/04(金) 12:39:01.46
グラフ生成のスクリプトを作成して実行するとプロセスが残ってしまうのですが
プロセスを終了するにはどうすればいいのでしょうか?
繰り返し実行するとグラフは作成されるのですが、繰り返した回数だけ
gnuplotのプロセスが残ってしまいます。
OSはWindowsです。
0434名無しさん@お腹いっぱい。
垢版 |
2016/03/04(金) 15:40:37.66
>>433
こんなんしたときこっちではプロセス残ったりしない
C:\>more sin.plot
set terminal png
set output "sin.png"
plot sin(x)

C:\>gnuplot sin.plot
0435名無しさん@お腹いっぱい。
垢版 |
2016/03/04(金) 17:01:18.01
>>434
最後にset outputを付けないと生成したファイルを開こうとすると他のプロセスが使用中
で開けませんってなりませんか?
set outputを付けないで何度がテストした感じだとプロセスが増えていないかもしれないですが
ファイルを開けないので実用に耐えないです。
マシンを再起動すれば開けましたが。
0436名無しさん@お腹いっぱい。
垢版 |
2016/03/05(土) 11:17:41.35
>>434
最新のバージョンで試したらプロセスは残りませんでした。
古いバージョンのバグだったみたいです。お騒がせしました。
0437名無しさん@お腹いっぱい。
垢版 |
2016/03/05(土) 21:25:37.67
matplotlibというものに出会ってどうでもよくなった。
0440名無しさん@お腹いっぱい。
垢版 |
2016/03/06(日) 23:50:15.83
>>439
python載せたら良いじゃん。
matplotlib使ったらgnuplotなんて要らなくなるか、ちょっとしたグラフ描きたいぐらいのついでぐらいでしか使わなくなるよ。

本格的にやるんなら、python+numpy+matplotlib+pandasで何でも出来るぜ。
0441名無しさん@お腹いっぱい。
垢版 |
2016/03/07(月) 00:16:40.15
gnuplotの使い方を分かってなさそう
どういう使い方してる?
0442名無しさん@お腹いっぱい。
垢版 |
2016/03/12(土) 19:43:28.46
set label {/Symbol p}とかで出力する文字のフォントはどこで設定するんですか?
set label
0443名無しさん@お腹いっぱい。
垢版 |
2016/03/12(土) 19:44:49.17
set label {/Symbol p}とかで出力する文字のフォントはどこで設定するんですか?
set label あいうえおとかのフォントは設定できるんですが、(この場合の)Symbolのπ
のフォントはデフォルト?が使われているみたいできれいじゃないです。
OSはWindowsです。

ダブルクオートはだめみたいなので再度書き込みます。
0444名無しさん@お腹いっぱい。
垢版 |
2016/03/12(土) 20:16:53.87
>>443です。
terminalをwindowsにしたらきれいなフォントで出力されました。
wtxの問題のようですが、wtxのフォントの設定は特殊なんでしょうか?
0445名無しさん@お腹いっぱい。
垢版 |
2016/03/13(日) 13:16:12.66
θとかで記号を記述できることを見つけたんだけど
どういう機能なんだろ?
マニュアルで探しても見つけられなかったんだけど
機能の名前とか説明しているページとか知ってたら教えて
0447名無しさん@お腹いっぱい。
垢版 |
2016/03/13(日) 18:13:42.75
>>446
エンティティって何だろう?
マニュアルを検索しても見当たらなかったけど
0449名無しさん@お腹いっぱい。
垢版 |
2016/03/13(日) 20:12:53.93
>>446
θの形式がcharacter entity referenceだってこと?
ただ、character entity referenceをgnuplotがどうサポートしてるかについては
マニュアルもWebのページも見つけられない
PNGとかでしか使えないみたいだからgnuplotの機能じゃなくてGDライブラリの機能かもしれない
0450名無しさん@お腹いっぱい。
垢版 |
2016/03/13(日) 20:13:28.54
PNG出力のときとかしか使えない
0452名無しさん@お腹いっぱい。
垢版 |
2016/03/14(月) 13:04:43.68
>>451
教えてー
0454名無しさん@お腹いっぱい。
垢版 |
2016/03/17(木) 17:39:50.48
>>452 >>453
これってsvg のスクリプトのことですよね。だから、svgターミナルからはできないってことでいいのかな。
svgをはきださせて、スクリプトをエディタで編集するってことでいいんですか?
0455名無しさん@お腹いっぱい。
垢版 |
2016/03/18(金) 08:35:56.06
>>454
テストしたらこうでした。
pngかgifとかでしか使えないみたい。

set terminal wxt noenhance
plot x title
0456名無しさん@お腹いっぱい。
垢版 |
2016/03/18(金) 08:36:56.13
>>454
テストしたらこうでした。
pngかgifとかでしか使えないみたい。

set terminal wxt noenhance
plot x title θ
タイトルは「θ」

set terminal png noenhance
plot x title θ
タイトルは「θ」

set terminal svg noenhance
plot x title θ
タイトルは「θ」

(ダブルクオートは書き込めなかったから消してます)
0458名無しさん@お腹いっぱい。
垢版 |
2016/03/18(金) 10:55:00.38
>>457
よろしく。
ちなみに/Symbolでも記号を指定できるんだけどSymbolフォントの扱いが
terminalによってばらばらなんだよね。
確かwxtだとデフォルトのフォントを指定してもSymbolフォントになってしまって
実際にはかっこ悪いフォントが選択される。
pngだとデフォルトのフォントが反映されたような。
0459名無しさん@お腹いっぱい。
垢版 |
2016/03/18(金) 19:29:25.16
>>458

パソコンから書き込んだら2chブラウザで見れないので、スマホから書き込んでいます。

windowsの文字コード表(起動の仕方は、ググって下さい。m(__)m)を起動してTimes New Romanのフォントを探すとギリシャ文字がでてくるので、これをスクリプトを書いているエディタにコピペします。

enhanced textでは

'{/Times-New-Roman π}'

でπの部分は実際は文字コード表からとってきたコードのフォントです。シングルクォートを使う方がお勧めです。(ダブルクォートでないとできないこともあるようですが。)

wxt だけでなく、色々なターミナルで使える方法です。
0460名無しさん@お腹いっぱい。
垢版 |
2016/03/19(土) 00:12:01.39
>>459
Times New Roman のようにフォント名にスペースがある場合は、スペースをハイフン(-)で置き換える(Times-New-Roman)のがTipsです。(これで大分悩んだ(*_*))。
0464名無しさん@お腹いっぱい。
垢版 |
2016/03/19(土) 10:16:33.23
>>463
ありがとう。
どうしてgdを使っているterminalは対応しているのかだけでも分かればすっきりする。
0468名無しさん@お腹いっぱい。
垢版 |
2016/03/24(木) 11:55:45.02
>>466
やっぱりそうなんだ。
お蔭様ですっきりしました。
0469名無しさん@お腹いっぱい。
垢版 |
2016/04/03(日) 06:17:01.59
cygwin版gnuplotのcairoベースターミナル(wxt,pngcairo, pdfcairoなど)で
Windowsのフォントディレクトリにあるフォントを使うには,fontconfigで
そのように設定すればいい。

/etc/fonts/ にlocal.confを作成し,

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>
<dir>/cygdrive/c/Windows/Fonts</dir>
</fontconfig>

と書く。そののち,
$ fc-cache -fv
を実行する。
上は,C:\Windows\Fontsに(まあ普通はそう)にWindowsのフォントがある
場合なのでその他の場合は /cygdrive/c/Windows/Fonts を適宜書き直す。
これでは,全ユーザーに設定がいく。

ユーザー限定では,
~/.local/share/fonts/
または
~/.fonts/

にlocal.confを作成すればよいようだ。
(fc-cache -fvが上の二つを見にいっている。)

これは,gnuplotに限らず,fontconfigでフォントをハンドルしているアプリケーションすべてで
成り立つ設定だ。
これでLANG=Cしなくても,wxtターミナルのフォントがまともになった。
0470名無しさん@お腹いっぱい。
垢版 |
2016/04/09(土) 01:14:22.79
塗りつぶしていない領域と塗りつぶした領域で点線の色を変えるにはどうすればいいんでしょうか?

set terminal png
set grid front
plot x with filledcurves x1
を実行すると塗りつぶした領域では格子線が白で表示されるので分かりやすいです。

同じような効果を得たいのですが、wxtやpngcairoに出力した場合は点線の色が常に黒になるため
塗りつぶした領域では点線が見づらくなってしまいます。

白と黒の点線を指定できれば同じ効果が得られるんでしょうが
点線の地の色と線の色を両方指定する方法とかないのでしょうか?
0473名無しさん@お腹いっぱい。
垢版 |
2016/04/09(土) 23:21:55.69
>>472
そうだと思うんだけど、塗りつぶしていない領域と塗りつぶした領域で
点線の色を変える方法を知ってたら教えて欲しいです。
0474名無しさん@お腹いっぱい。
垢版 |
2016/04/10(日) 07:07:40.01
>>473
ここで、答えがつかないようならgnuplot Q&A 掲示板で聞いてみたら?
名前さらすのがいやならハンドルネームでいい訳だし。
0475名無しさん@お腹いっぱい。
垢版 |
2016/04/10(日) 10:09:03.18
>>474
聞いてみる。
どこが一番活発なんだろう?
0476名無しさん@お腹いっぱい。
垢版 |
2016/04/10(日) 12:31:15.94
gnuplot Q&A 掲示板に投稿しようとしたら書き込み不可って言われた…。
0479名無しさん@お腹いっぱい。
垢版 |
2016/04/11(月) 14:34:46.47
>>477
パソコンから書き込もうとしたんですが、だめでした。
代理投稿ありがとうございました。
0480名無しさん@お腹いっぱい。
垢版 |
2016/04/11(月) 17:34:00.25
>>479

grid線を灰色にかえるという、代替案が掲示板ででました。
これでいいかどうかは、話題主さん次第です。別の回答者が現れるかもしれません。
0481名無しさん@お腹いっぱい。
垢版 |
2016/04/11(月) 19:54:01.11
>>480
塗り津美している領域と塗りつぶしていない領域で点線の色を変えたいのでちょっと違います。
でも、それを実現する設定はたぶんないんでしょうね。
0483名無しさん@お腹いっぱい。
垢版 |
2016/04/11(月) 23:40:35.91
>>481
pngターミナルでgridの色分けしているように見えるのは、錯覚らしい。

領域の境目の座標がわかればver. 5
なら、plotコマンドと三項演算子とfor文などつかって強引にやれんことはないかな。

問題は、領域の境目の座標を知ることだと思います。例のように直線ならば簡単ですが。
0486名無しさん@お腹いっぱい。
垢版 |
2016/04/12(火) 11:32:04.61
>>483
なるほど。pngではgridの色と点線が違うことが理由でしたか。
すっきりしました。ありがとうございます。
0487名無しさん@お腹いっぱい。
垢版 |
2016/04/12(火) 16:50:18.67
gnuplot Q&A 掲示板の書き込み読んだらgnuplotを使い込んでいてすごい。
gnuplotを仕事で使ってるのかな?
0489名無しさん@お腹いっぱい。
垢版 |
2016/04/12(火) 19:24:08.06
>>488
やっぱり。かなり使い込んでそうだから。
データ分析とかに使うことが多いんですか?
0490名無しさん@お腹いっぱい。
垢版 |
2016/04/12(火) 21:59:54.21
>>489
論文にのせる図の作成。
日頃の実験データの整理。
自作の機器制御プログラムでのリアルタイムプロット。
fitコマンドによるパラメータ最適化。

等々。

gnuplotに触らない日の方が少ない位です。

本格的データ解析はoctaveでやりますが、gnuplotの方が遥かに使用頻度が高いです。
0491名無しさん@お腹いっぱい。
垢版 |
2016/04/13(水) 01:34:26.69
>>490
大学の研究ですか。楽しそう。
実験データをまとめて比較したりしているんですかねえ。
使い方のノウハウとかプロセスとかたまってそうでうらやましいです。
0492名無しさん@お腹いっぱい。
垢版 |
2016/04/14(木) 06:27:39.86
>>487
takeno.iee.niit.ac.jp/~shige/gnuplot/gnuplot.html#info

このぺーじは本当に情報の宝庫です。もしご存じなければご覧あれ。

gnuplot Q&A 掲示板にも頻繁に登場されておーと思う回答をされます。
0496名無しさん@お腹いっぱい。
垢版 |
2016/04/14(木) 14:14:45.21
サイトの情報ありがとうございます。
読んでみます。
0497名無しさん@お腹いっぱい。
垢版 |
2016/04/15(金) 23:02:56.09
gnuplot+gawkの環境で、fileAの3列目を横軸に、fileBの5列目を縦軸にグラフを描くにはどうすれば良いですか?
0499名無しさん@お腹いっぱい。
垢版 |
2016/04/16(土) 00:00:32.74
時間分解能の違う2種類の時系列データで同時刻の際の相関を見るとかだと
awkの連想配列が便利と言えば便利かもね
0500名無しさん@お腹いっぱい。
垢版 |
2016/04/16(土) 00:50:28.09
>>498
ありがとうございました
思った通りに動作しました
>>499
今回は同じだったので異なる場合を見るときは使ってみます
0501名無しさん@お腹いっぱい。
垢版 |
2016/04/16(土) 18:49:39.25
3次元のグラフの目盛の数字と目盛のラベルが他の軸だったり、軸の線と重なる
ことがありますが、どうするのがいいのでしょうか?
viewやoffsetを調整することはできるのですが、場当たり的な対応であり、
手間もかかるので、うまい対処方法はないでしょうか?
0502名無しさん@お腹いっぱい。
垢版 |
2016/04/16(土) 21:39:00.43
>>501

これは、難しい。3Dだから。自分にはいわれている場当たり的対応しか、思い付かない。statsも2次元だし。

ダメもとでgnuplot Q&A 掲示板で聞いてみるとか。
0504名無しさん@お腹いっぱい。
垢版 |
2016/04/17(日) 12:00:52.34
>>503
ありがとうございます。
0505名無しさん@お腹いっぱい。
垢版 |
2016/04/18(月) 01:40:05.39
>>502
viewの角度を元にoffsetを調整することを思いついて試してみたんですが
gnuplotが目盛の表示位置を調整しているため、うまく行かないです。
zを25度回転したあたりで1文字分ずらすようです。
ソースを読めば動作が分かるんでしょうがそこまでできないでいます…。
0507名無しさん@お腹いっぱい。
垢版 |
2016/04/18(月) 18:07:49.57
>>501 >>505
gnuplot Q&A 掲示板の3142番の回答のようにバグの可能性があります。

bug ticketsに登録できますか?

やり方がわからないならアシストします。
0508名無しさん@お腹いっぱい。
垢版 |
2016/04/18(月) 19:56:58.35
z軸の回転角度を26〜154度にするとy軸の目盛が急に軸に近づくのは
おかしい気はしていました。バグなんですかねえ。

bug ticketsに登録したことはないので自信はないです…。
Statusはopenで、Ownerは空でいいと思うし、内容は何とか書けないこともないと思うんですが
Milestone、Priority、Labelsはどうするんだろうという感じです。

.scに書き込んでしまったので念のため.netからも。
0509名無しさん@お腹いっぱい。
垢版 |
2016/04/19(火) 00:45:42.25
> Milestone、Priority、Labelsはどうするんだろうという感じです。
ここらは、全部空欄でいいですよ。

私がレポートするときはじめは、気にしてましたが、今は気にしてません。

最初だけは、Anonymousで書き込めますが、やりとりをするにはsourceforgeのアカウントが必要です。アカウント名は、ハンドルネームでもかまいません。

gnuplot Q&Aの回答にあったスクリプトはつけておくことをおすすめします。
0510名無しさん@お腹いっぱい。
垢版 |
2016/04/19(火) 12:21:11.42
>>509
なるほど。登録してみます。
ちなみにviewの角度を元にoffsetを調整する関数が書けそうなのでそれを
完成させてから合わせてbug ticketsに登録しようと思います。
0512名無しさん@お腹いっぱい。
垢版 |
2016/04/19(火) 20:35:11.04
>>507宛でした。
0513名無しさん@お腹いっぱい。
垢版 |
2016/04/19(火) 20:39:21.29
なお、>>507さんに対応して下さいということではないです。
誰かに対応してもらえるかなあ?という思いを率直に書いただけです。
あしからず。
0515名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 02:41:15.26
dgrid3dによる変換後のデータと元データを同じグラフで描画する方法は
あるのでしょうか?

イメージとしては以下の両方のコマンドを描画したいです。
splot "scatter.dat" using 1:2:3 with impulses
set dgrid3d
splot "scatter.dat" using 1:2:3 with lines

ところが、それをしたいと思って以下を実行すると
impulsesも変換後のデータを使ってしまいます。
set dgrid3d
splot "scatter.dat" using 1:2:3 with lines, \
"scatter.dat" using 1:2:3 with impulses
0516名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 02:56:33.70
>>515
解決しました。
set table $dataに一度出力してから$dataとscatter.datを描画すればよかったです。
0517名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 03:19:11.33
>>516
解決したと思ったら問題がまだ残っていました。
dgrid3dで作成されるデータは元データが存在する範囲に限られるので取り得る値であっても
データがなければ曲面は描画されません。

例えば100点満点のテストのグラフを描画したいのでグラフの範囲は[0:100]だけど
実際の最低点は30点で、最高点は90点だった場合、どのように示すのがいいでしょうか?
そのままグラフを示すと曲面が0〜100点を示していると誤解する人が出そうです。
グラフの範囲を[30:90]にするというのも一案だとは思いますが、
グラフの範囲は[0:100]だという前提で、曲面の範囲は30〜90点であることも
誤解なく示すにはどうするのがいいかアイデアを頂きたいです。
0519名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 09:25:10.27
>>518
よく考えたらimpulsesの根元が元データの分布を示していることに気が付きました。
必要であればstatで最小値・最大値が分かるのでデータの範囲をbaseの位置に示してもいいでしょうか。

ただ、当初の質問から派生した疑問としてある曲面の上にあるデータと曲面の下にある
データで色分けするにはどうすればいいのでしょうか?
2次元グラフで3項演算子を活用する方法は分かったのですが、3次元の場合の
方法は見つけられていません。
ばらついて分布する元データからdgrid3dで格子の曲面を生成し、
元データがその曲面の上下どちらにあるかを分かりやすく示したい
といった利用方法を想定しています。
0520名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 12:13:43.98
>>667
このあたりのことは、gnuplot Q&A 掲示板でよく登場される竹のさんが深い造形わをお持ちです。

こちらで回答がつかない場合は、gnuplot Q&A 掲示板で質問されたほうが
いいと思います。
0521名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 13:51:37.94
>>515 >>516 >>517 >>519

もっと具体的にモデルデータをつけでもらえませんか。ver. 5ならデータブロックでスクリプト内にデータがかけるので。

また、

set dgrid3d
splot "scatter.dat" using 1:2:3 with lines, \
"scatter.dat" using 1:2:3 with impulses

set tableで外部ファイルに吐き出させたデータ(長ければ、その一部)も書いてもらえませんか?

具体的なことがわからないとどこで質問しても答えはつかないと思います。
0522名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 14:18:22.00
>>521
2つの変量が結果に作用する傾向を確認したいといったケースを想定しています。
データにはあまり依存しないと思いますので、
例えば以下のデータをプロットする場合はいかがでしょうか。

# 要因A 要因B 結果
30 50 20
60 80 90
50 70 80
30 60 60
55 60 55
40 70 60
30 80 20
80 80 40
40 50 95
0523名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 14:23:56.94
>>520
面白いスクリプトを書かれていらっしゃるのを拝見しました。
状況を見てgnuplot Q&A 掲示板の利用も検討してみます。
0524名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 17:19:17.12
>>522

サンプルデータありがとうございます。

まだ、なさりたいことを完全に把握しきれてないので。

>例えば100点満点のテストのグラフを描画したいのでグラフの範囲は[0:100]だけど
実際の最低点は30点で、最高点は90点だった場合、どのように示すのがいいでしょうか?
そのままグラフを示すと曲面が0〜100点を示していると誤解する人が出そうです。
グラフの範囲を[30:90]にするというのも一案だとは思いますが、
グラフの範囲は[0:100]だという前提で、曲面の範囲は30〜90点であることも
>誤解なく示すにはどうするのがいいかアイデアを頂きたいです。

この点は、

set xrange [0:100]
set yrange [0:100]
set zrange [0:100]

ではだめですか?
0525名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 17:59:25.29
>>524
そのような方法もあると思います。
元のデータが分布している範囲を明示する必要があれば>>519の前半の方法も
あるかと思います。

同じような悩みを持った方がいらっしゃいましたらどうしたか
アイデアを共有して頂きたいと思ってました。
0526名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 19:32:34.34
俺もどういうものを作りたいのかいまいちよくわからんけど、grid3dとpm3dの組み合わせとかでいいんけ?
それとも、
ttp://www.phyast.pitt.edu/~zov1/gnuplot/html/bargraphs.html
の一番下のbargraphみたいなの作りたいの?

作りたいグラフっぽい図を示してもらった方が的を射た答が返ってくると思うよ
0528名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 19:52:42.56
連投(´・ω・)スマソ
曲面の上と下のデータってどういう意味?
grid3d使ったら、データはすべて曲面上に乗るんじゃないの?
0529名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 19:59:07.00
>>519

>ばらついて分布する元データからdgrid3dで格子の曲面を生成し、
>元データがその曲面の上下どちらにあるかを分かりやすく示したい
といった利用方法を想定しています。

dgrid3dは格子ごとの平面を生成します。

まず、x, y座標からどの格子に属するのを知る必要があります。
これは、原点を考慮した割算とfloor関でできると思います。

また、格子の座標がわかるので格子の平面の方程式がわかり、それがわかれば格子上のz座標がわかります。
与えられたデータのz座標が格子上の
z座標より大きいか小さいかてでプロットをかえる三項演算子の実装をします。

文章でいうとこんなところです。
スクリプトにするには、色々考えないといけませんが、今のgnuplotのスクリプトの強力さを考えると実装できると思います。
0530名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 20:00:53.73
>>526
>>517は、こんなグラフを作るにはどうすればいいの?って疑問じゃなくて
こういう場合はどういうグラフにするのがいいんだろう?って疑問なので
どんなグラフがいいのか私も分かりません。
>>519のやり方で対応することにします。
もしも、同じような疑問を持たれた方がいらっしゃいましたら経験を
共有して頂ければ十分です。
0531名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 20:05:31.01
>>528
生データとそれを元に生成したgrid3dの曲面の両方を描画します。
生データとgrid3dの曲面はずれますので曲面の上下に位置することになり、
そのずれを見やすく色分け表示したいと思いました。
0532名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 20:15:26.41
>>529
2次元の場合でも3次元も場合でも三項演算子の使い方は基本的には同じなんですね。
dgrid3dの曲面は式では与えられないので交点のデータから判定するための
条件を自分で記述する必要があるということですか。
方針はイメージできました。ありがとうございます。
0533名無しさん@お腹いっぱい。
垢版 |
2016/04/20(水) 20:25:49.23
$dataに格納されたデータにアクセスするコマンドって用意されているんでしたっけ?
配列のようにアクセスできれば理想ですが、そこまでできないにしても
そもそも部分的にデータを取り出すにはどうするんでしょう?
私が知らないだけかも知れませんが。
レスを投稿する


ニューススポーツなんでも実況