グラフ描画ソフト gnuplot を体験してみよう

Slides:



Advertisements
Similar presentations
今回のテーマ 2015.4.22説明 ① 列(材料費~収入)と行(1~12月 迄と計)を手入力でなく自動で作成し たい(黄色内) ポイント:経費月報( 1 月~ 12 月) と 経費合計表はある 1 I.Miyamoto Excel の使い方
Advertisements

1 2. 名簿のデータを使って, 出席簿や連絡網を作る 2.1 名簿の番号と氏名を参照して,出席簿を作りま しょう. (ワークシートの挿入,別シートのセルの参照,など) 2.2 名簿の番号を参照して,席次表を作りましょう. ・・・ VLOOKUP 関数 2.3 名簿の番号と氏名を参照して,連絡網を作りま.
Gnuplot でアニメーション 宇宙物理学研究室 M1 藤田哲也. 目次 0. Introduction 1.gnuplot の every 2.gnuplot で 画像出力 3. アニメーション作成ソフト giam.
第5章 JMPのインストールと基本操作 廣野元久
初年次セミナー 第13回 2次元グラフィックス(1).
初年次セミナー 第14回 2次元グラフィックス(2).
神戸大学大学院 宇宙物理学研究室 青田 拓大 M2 田方 友梨 M2
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング演習(1組) 第7回
コンピュータープログラミング(C言語)(3) 1.関数と分割コンパイル (復習) 2.キーボード入力
4章 制御の流れ-3.
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
VO講習会2013春 VOツール使用法(1) TOPCAT 国立天文台 天文データセンター 小宮 悠.
talend活用事例 ・ナビゲータグラフのカスタマイズにおける事例 ・CSVダウンロードでのカスタマイズ事例
リダイレクト パイプ 標準入出力プログラム コマンド行引数 関数 system()
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
第14章 ファイル操作 (コマンドプロンプト版)
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
Quartus II 使用法 (ver 9 sp2, 一部ver. 5)
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
スクリプト言語を用いたPHITSの連続実行
マイクロソフト Access を使ってみよう 第1回
知っていると便利編 1.操作について 2.メニュー 3. ショートカットキー 4.操作対象 5.セルの番地 6.Excelの設定 7.1 ウィンドウよりも大きい表 ・・・ ウィンドウ枠の固定 7.2 2つのExcelのシートを同時に見る 7.3 2つの文書(ファイル)を同時に見る 8. 印刷 9.入力中に,英字の先頭が大文字になって困るなど。
グラフ描画ソフト gnuplot を体験してみよう
第7回 条件による繰り返し.
第2回 Microsoft Visual Studio C++ を使ってみよう
ニュートン法の解の計算 情報電子工学系学科 電気電子工学コース・情報通信システム工学コース
第1回.リレーショナルデータベースを使ってみよう
プログラミング応用 printfと変数.
フーリエ級数展開 ~矩形波について~ 長江 栞 中島 涼 中村 勇樹
リダイレクト パイプ 標準入出力プログラム コマンド行引数 関数 system()
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
前回の練習問題.
第7回 条件による繰り返し.
第9回関数Ⅰ (簡単な関数の定義と利用) 戻り値.
第14章 ファイル操作 (コマンドプロンプト版)
デジタル画像とC言語.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
グラフのPLOT方法 連続系演習補助資料.
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
2013年度 プログラミングⅡ ~ はじめてのプログラミング ~.
復習 2次元配列 4列 j = 0 j = 1 j = 2 j = 3 i = 0 i = 1 i = 2 3行
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
2014年度 プログラミングⅡ ~ はじめてのプログラミング ~.
実数列を生成する際の注意 数学関数の利用 Excel によるリサージュ図形描画 Excel による対数グラフ描画
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
C言語 はじめに 2016年 吉田研究室.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
UNIX演習 情報ネットワーク特論資料.
UNIX演習 情報ネットワーク特論資料.
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
vc-2. Visual Studio C++ のデバッガー (Visual Studio C++ の実用知識を学ぶシリーズ)
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
ファイルの読み込み, ファイルからのデータの取り出し, ファイルの書き出し
11.1 標準ライブラリ関数 11.2 関数呼び出しのオーバーヘッド 11.3 大域変数 11.4 プロトタイプ宣言 11.5 関数引数
実数列を生成する際の注意 数学関数の利用 Excel によるリサージュ図形描画 Excel による対数グラフ描画
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
Gnuplot を使おう 図を使って勉強するのが一番.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
情報処理概論Ⅰ 2007 第11回 2007/7/4 情報処理概論Ⅰ 第11回.
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
第1章 文字の表示と計算 printfと演算子をやります.
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
Presentation transcript:

グラフ描画ソフト gnuplot を体験してみよう Gnuplotによる3-Dグラフの描画 Gnuplotによる3-Dデータのプロット 今日のポイント グラフ描画ソフト gnuplot を体験してみよう

Gnuplot とは… グラフ描画専用のフリーウェア Windows版の名称は wgnuplot インストールはフォルダごとコピーするだけ 専用のコマンドウインドウにより、おもにコマンドで操作 日本語のオンラインヘルプやWebでの解説ページも充実

Gnuplotの起動と終了 gnuplot の起動は [ スタート ] → [すべてのプログラム(P)>] → [gnuplot] を<クリック> [ スタート ] → [すべてのプログラム(P)>] → [gnuplot] を   <右クリック>して、[送る(N)] より [ デスクトップ(ショートカットを作成)]を選び、 ショートカットアイコン を作成 ショートカットアイコン を<ダブルクリック>すると、gnuplot が 起動 左上の [File] → [Exit] または、右上の [x] ボタンにより、終了 送る(N) File Exit X

フォントが小さい場合 gnuplot のウィンドウを <右クリック> し、3つめの[ Choose Font... ] を選択し、フォントウィンドウを開く フォント名(F):で [Terminal] を選択し、サイズ(S):で [14] を選んでおく [ OK ] ボタンを押してフォントウィンドウを閉じる 再び、gnuplot のウィンドウを <右クリック> し、一番下の [Update wgnuplot.ini] を選んで設定を保存 Choose Font… Terminal 14 Update wgnuplot.ini

練習1 関数グラフを描いてみよう gnuplot> plot 2*x*x+3, x**3-75*x べき乗 プロンプト

グラフ描画のためのTips(1) X軸ラベル、Y軸ラベルは 凡例(Key)を変えるには プロットの線を「線と点」に変えるには gnuplot> set xlabel "x" gnuplot> set ylabel "y" gnuplot> replot 凡例(Key)を変えるには gnuplot> plot 2*x*x+3 title "y=2x^2+3", \ > x**3-75*x title "y=x^3-75x" プロットの線を「線と点」に変えるには gnuplot> plot 2*x*x+3 with linespoints, \ > x**3-75*x with linespoints 矢印キー↑で 前のコマンド を呼び出し、 編集できる Axes メニュー [Replot] ボタン 改行して 続ける記号 Plot メニュー

Axes メニュー → Logscale xyz グラフ描画のためのTips(2) X軸範囲、Y軸範囲の指定は gnuplot> set xrange [-15:15] gnuplot> set yrange [-2000:2000] gnuplot> replot 目盛線をつけるには gnuplot> set grid 対数グラフにするには gnuplot> set logscale xy set コマンドを解除するには gnuplot> unset grid Axes メニュー Chart メニュー → Grid on Axes メニュー → Logscale xyz Chart メニュー → Grid off

練習2 対数グラフを描いてみよう gnuplot> plot 1/(1+x*x) set logscale xy 練習2 対数グラフを描いてみよう gnuplot> plot 1/(1+x*x) set logscale xy set xrange [0.1:100] set yrange [0.0001:1] set xlabel "x" set ylabel "y" set grid replot Lorentz関数

sinc2(x)の対数グラフ gnuplot> sinc(x) = sin(pi*x)/(pi*x) plot sinc(x)**2 sinc2(x) = (sin px/px)2 sinc2(x)の対数グラフ オプション gnuplot> sinc(x) = sin(pi*x)/(pi*x) plot sinc(x)**2 set logscale xy set xrange [0.1:100] set yrange [0.0001:1] set xlabel "x" set ylabel "y" set grid replot 関数定義

gnuplot> set parametric plot cos(5*t), sin(7*t) set trange [-pi:pi] リサージュ図形 オプション gnuplot> set parametric plot cos(5*t), sin(7*t) set trange [-pi:pi] set grid unset key replot 媒介変数 t 凡例なし (No Key)

練習3 データのプロット gnuplot> plot 'Z:\nyumon2\q14.csv' with lines 練習3 データのプロット gnuplot> plot 'Z:\nyumon2\q14.csv' with lines 凡例を書き換える場合 gnuplot> plot 'Z:\nyumon2\q14.csv' \ > title "y=2x^2+3" with lines さらに線を「線と点」にかえる gnuplot> plot 'Z:\nyumon2\q14.csv' \ > title "y=2x^2+3" with linespoints

複数データのプロット gnuplot> plot 'Z:\nyumon2\q14_s.csv' with lines, \ オプション gnuplot> plot 'Z:\nyumon2\q14_s.csv' with lines, \ > 'Z:\nyumon2\q14_s.csv' using 1:3 with lines 1列目と3列目でプロット 凡例を書き換える場合 gnuplot> plot 'Z:\nyumon2\q14_s.csv' \ > title "2x^2+3" with lines, \ > 'Z:\nyumon2\q14_s.csv' using 1:3 \ > title "x^3-75x" with lines

練習4 3-Dグラフの描画 gnuplot> R(x,y)=sqrt(x*x+y*y) gauss(x,y)=exp(-R(x,y)**2) splot gauss(x,y) set xrange [-2:2] set yrange [-2:2] set isosample 40,40 set xlabel "x" set ylabel "y" replot 関数定義 default の10 では足りない

練習5 等高線の描画 gnuplot> R(x,y)=sqrt(x*x+y*y) gauss(x,y)=exp(-R(x,y)**2) 練習5 等高線の描画 gnuplot> R(x,y)=sqrt(x*x+y*y) gauss(x,y)=exp(-R(x,y)**2) splot gauss(x,y) set xrange [-2:2] set yrange [-2:2] set contour base unset surface set view 0,0 set cntrparam levels 10 set xlabel "x" set ylabel "y" replot

3-D/等高線グラフのためのTips 陰線処理 gnuplot> set hidden3d カラーマップ表示 gnuplot> set pm3d カラーパレットの指定 gnuplot> set palette gray gnuplot> set palette color

Milk drop オプション Milkdrop(x,y) = exp( exp( -R(x,y) ) * ( exp( cos( R(x,y) )**20 ) + 8*sin( R(x,y) )**20 + 2*sin( 2*R(x,y) )**8 ) )

3-Dプロット用のデータ構造 Excelとは異なり、2-Dプロット用データを縦に並べることで3-Dプロット用データとしている。

練習6 3-Dデータのプロット まず、 f (x, y)=exp(-(x2 + y2)), -2 ≦ x, y ≦ 2 のgnuplot用データを作成し、gauss2.dat に保存する。 つぎに、gnuplotにより gauss2.dat の3-D  プロットを描く。

プログラム例 (gauss2g.c) #include <stdio.h> #include <math.h> int main(void) { int i, j, n=20; double x, y, z; for (j = -n; j <= n; j++) { y = 0.1*j; for (i = -n; i < n; i++) { x = 0.1*i; z = exp(-(x*x+y*y)); printf("% .2f, % .2f, % .3f\n",x,y,z); } printf("\n"); return 0;

実行手順 Z:\nyumon2>cl gauss2g.c ... Z:\nyumon2>gauss2g > gauss2.dat このあと、gnuplot を起動し、 gnuplot> splot 'Z:\nyumon2\gauss2.dat' \ > with lines

スキルアップタイム:(gauss22g.c) 最初に f (r) = exp(-r2) | cos(2pr) |  のデータを出力したあと、2回改行し、続けて    f (r) = exp(-r2) + 1  を出力するプログラムを作成し、gauss22.dat に保存  せよ。ただし、r2 = x2+y2, -2 ≦ x, y ≦ 2. つぎに、gnuplotにより gauss22.dat の3-D  プロットを描け。 絶対値は fabs( )

スキルアップタイムの出力例

ヘルプ、その他 Help メニュー : コマンドの詳しい使い方など コマンド、オプションは誤解されない範囲で短く省略可 plot → p, splot → sp, replot → rep with → w, lines → l, title → t, using → u xrange → xr, xlabel → xl, logscale → logs palette → pal, hidden3d → hid など デモは C:\Gnuplot\demo\all.dem

faceg.dat の表示 gnuplot> set view 180, 0 unset surface unset xtics オプション gnuplot> set view 180, 0 unset surface unset xtics unset ytics unset ztics set size square set pm3d set palette gray splot 'Z:\nyumon2\faceg.dat' 真下から見る メッシュを非表示 軸も非表示 正方形にセット グレイスケールで表示 gnuplot 用にデータを並べ替えた faceg.dat を3D表示

face.dat → faceg.dat の変換 face4g.c #include <stdio.h> オプション #include <stdio.h> #include <string.h> int main(void) { int i; char *p,s[520]; while (fgets(s,520,stdin)!=NULL) { p=strtok(s," "); if (p && (*p!=' ')) printf("%s\n", p); for (i=1;i<128;i++) { p=strtok(NULL," "); } printf("\n"); return 0; face4g.c

face.dat → faceg.dat の変換 Z:\nyumon2>cl face4g.c オプション Z:\nyumon2>cl face4g.c Z:\nyumon2>face4g < face.dat > faceg.dat