科学的結果のプレゼンテーション:LaTeXとGnuplotの統合

「あなたの唯一の道具がハンマーなら、すべての問題は釘のようになります。」



アブラハム・マスロウ



はじめに



科学的な創造性それ自体は些細なプロセスではなく、外界からある程度離れることを必要とします。 また、時間の経過に伴う強度の分布という点では非線形です。6か月間何もせずに失敗することもあるため、1か月半後には、懸念される問題のほとんどを解決できます。



それで、あなたはあなたを訪問した「交響詩”エウレカ」の機会を100%使い、主な仕事を終え、結果をジャーナルに発表し、会議に報告し、上司/コンサルタントに美しい報告書を送ってください。 そして、あなたは記事/レポート/レポートを書くという痛みを伴うフェーズを開始します。 そして、このフェーズがどれほど苦痛になるかは、この作業にどのツールを使用するかによって決まります。



若くて愚かな大学院生が、私と上司による徹底的な「読書」を目的とした候補者「レンガ」の最初のバージョンを書いたときのことを思い出します。 その後、EPS形式について知らなかったため、Mapleで作成されたグラフを* .bmpラスタにエクスポートし、後でWordに挿入するためにMS Visioでそれらを丸で囲みました。 他にも、同様に不器用な愚かさがありました。 その後、私はすべてを呪い、次の論文をまったく異なる方法で書くことを約束しました。



連続した反復により、今日私はこのソリューションに来ました:







そして、蓄積された経験を人々に与える時が来ました。 興味のある方は、猫へようこそ。



1. gnuplot:何と何を食べる



私はアメリカを発見することはないと思うし、読者はこのユーティリティに精通している。 それについて長い間話さないために、まず、プロジェクトの公式ウェブサイトへのリンクを多数提供し、 「学部長のメモ」を入力するためのしきい値を低くします。 これは、仕事でこのツールを試したことがない人のために、すぐにビジネスの道に入るのに役立ちます。



要するに、 Gnuplotは、分析依存関係、表形式(実験データと数値シミュレーションデータ)、コマンドモードとスクリプトのサポートによって定義されたグラフを作成するための強力なユーティリティです。 Linuxユーザーは、ディストリビューションのリポジトリからパッケージをインストールするだけで済みます。WindowsおよびOS Xのユーザーは、公式Webサイトの指示に従ってこのユーティリティをインストールすることもできます。 例としてLinuxを使用して、プレゼンテーション用に計画されているすべてのものを説明します。



コマンドラインに入力します。

$ gnuplot GNUPLOT Version 4.6 patchlevel 6 last modified September 2014 Build System: Linux x86_64 Copyright (C) 1986-1993, 1998, 2004, 2007-2014 Thomas Williams, Colin Kelley and many others gnuplot home: http://www.gnuplot.info faq, bugs, etc: type "help FAQ" immediate help: type "help" (plot window: hit 'h') Terminal type set to 'qt' gnuplot>
      
      





コマンドを入力する招待を受信します。 たとえば、以下を紹介します。



 plot x**3 title '  y = x^3'
      
      





そして、我々は得る:







これを初めて見たとき、「Fuuu ...!」と言いました。これはデフォルトの結果で、どうやらしっかりしています。 だから誰もそれを完成させることを気にしません。 まず、グラフの線の色と太さを変更します。



 gnuplot> set style line 1 lt 1 lw 3 lc rgb '#4682b4' pt -1 plot x**3 title '  y = x^3' ls 1
      
      





実線で描かれた、交点を原点とする「学校」軸を作成しましょう



 gnuplot> set xzeroaxis lt -1 gnuplot> set yzeroaxis lt -1 gnuplot> replot
      
      





グリッドを追加します-灰色の破線:



 gnuplot> set grid xtics lc rgb '#555555' lw 1 lt 0 gnuplot> set grid ytics lc rgb '#555555' lw 1 lt 0
      
      





軸ラベルを軸自体に近づけます:



 gnuplot> set xtics axis gnuplot> set ytics axis
      
      





引数の範囲を変更します。



 gnuplot> set xrange [-3:3]
      
      





そして最後にこれを取得します:







元のバージョンよりもはるかに優れています。 チャートをカスタマイズする可能性は、単に豪華です。これについての詳細は、上記のリンクで見つけることができます。 上記のテキスト全体はシードを対象としています。



2. Gnuplottex:チャートをLaTeXドキュメントに統合する



GnuplottexはTeXliveに含まれているパッケージで、レイアウトドキュメントにGnuplotコマンドを直接入力できます。 理論化に気を取られることなく、直接練習に進みます。 新しいドキュメントを作成する



 \documentclass[12pt]{article} %  -,  ,       \usepackage[OT1,T2A]{fontenc} \usepackage[utf8]{inputenc} \usepackage[english,russian]{babel} \usepackage{amsmath,amssymb,amsfonts,textcomp,latexsym,pb-diagram,amsopn} \usepackage{cite,enumerate,float,indentfirst} \usepackage{graphicx,xcolor} %      ,     \usepackage[left=2cm, right=2cm, top=2cm, bottom=2cm]{geometry} %  Gnuplottex \usepackage{gnuplottex} \begin{document} \section{  Gnuplot   \LaTeX} \end{document}
      
      





注意! ドキュメントのアセンブリは、シェルコマンドを実行する機能を含む-shell-escapeスイッチを使用して実行する必要があります。



 $ pdflatex -shell-escape gnuplottex_rus.tex
      
      





または、IDE設定でこのキーを設定します(私はKileを持っています):







次に、ドキュメントの本文で、スケジュールを作成します。



 \begin{figure}[h] \centering \begin{gnuplot} plot x**3 title '  $y = x^3$' \end{gnuplot} \end{figure}
      
      





組み立て後、以下を取得します。







ここが最も「おいしい」ことに気づいていますか? グラフのシグネチャの式は人間に見えます-LaTeXのフルパワーは完全に自由です。 このファイルをファイルで仕上げましょう:



 \begin{figure}[h] \centering \begin{gnuplot} set terminal epslatex color size 12cm,15cm set xzeroaxis lt -1 set yzeroaxis lt -1 set style line 1 lt 1 lw 4 lc rgb '#4682b4' pt -1 set grid ytics lc rgb '#555555' lw 1 lt 0 set grid xtics lc rgb '#555555' lw 1 lt 0 set xrange [-3:3] plot x**3 title '$y = x^3$' ls 1 \end{gnuplot} \end{figure}
      
      







特に次のコマンドに注意してください。



 set terminal epslatex color size 12cm,15cm
      
      





端末タイプの指定:カラー出力をサポートするEPS LaTeX。 サイズは12 x 15 cmです。写真はこの端末です。 その結果、グラフが得られます







別の線種とグラフを追加して、コードを少し変更します。



  set style line 2 lt 1 lw 4 lc rgb '#aa0000' pt -1 . . . plot x**3 title '$y = x^3$' ls 1, \ x**4 title '$y = x^4$' ls 2
      
      











検討中の技術を使用するのに基本的な困難はないことがわかる。 ここに3次元グラフを追加できます。



 \begin{figure}[h] \centering \begin{gnuplot} set terminal epslatex color size 12cm,12cm splot x**2 + y**3 with lines title '$z = x^2 + y^3$' \end{gnuplot} \caption{  } \end{figure}
      
      











表示スキームをグリッドから色付きのポリゴンに変更します。



 splot x**2 + y**3 with pm3d title '$z = x^2 + y^3$'
      
      









外観のカスタマイズ、パレットの選択-これらはすべて、Gnuplotのドキュメントから収集できます。プログラムの次の項目に進みます



3.データファイルからのグラフ化



これがこのツールの主な力です。 次のように形成されたデータを含むテキストファイルがあるとします。



 # x y1 y2 0 0 0 1 1 1 2 4 8 3 9 27 4 16 64
      
      





最初の列、たとえば引数、2番目と3番目はいくつかの関数の値です。 これは、フィールド実験の結果、または数値シミュレーションの結果である可能性があります。 2次元グラフの作成は次のようになります。



 plot '<   >' using < >:< > title '<>'
      
      





列には1から始まる番号が付けられます。 退屈しないように、ドキュメントから例を挙げます。 この教育プロジェクトのフォルダーに結果/ディレクトリを作成し、数値実験2319.logの結果を含むファイルをそこに配置します (ここにログの命名に関する独自の詳細があります...) 次に、プロジェクトに次のコードを追加します。



 \begin{figure} \centering \begin{gnuplot} set terminal epslatex color size 17cm,8cm set xzeroaxis lt -1 set yzeroaxis lt -1 set xrange [0:20] set style line 1 lt 1 lw 4 lc rgb '#4682b4' pt -1 set style line 2 lt 1 lw 4 lc rgb '#ee0000' pt -1 set style line 3 lt 1 lw 4 lc rgb '#008800' pt -1 set style line 4 lt 1 lw 4 lc rgb '#888800' pt -1 set style line 5 lt 1 lw 4 lc rgb '#00aaaa' pt -1 set style line 6 lt 1 lw 4 lc rgb '#cc0000' pt -1 set grid xtics lc rgb '#555555' lw 1 lt 0 set grid ytics lc rgb '#555555' lw 1 lt 0 set xlabel '$t$, c' set ylabel '$P$, ' set key bottom right plot 'results/2319.log' using 1:3 with lines ls 2 ti '$P_2$', \ 'results/2319.log' using 1:9 with lines ls 4 ti '$P_9$', \ 'results/2319.log' using 1:19 with lines ls 5 ti '$P_{19}$',\ 'results/2319.log' using 1:29 with lines ls 1 ti '$P_{29}$',\ 'results/2319.log' using 1:49 with lines ls 3 ti '$P_{49}$', \ 'results/2319.log' using 1:54 with lines ls 6 ti '$P_{53}$' \end{gnuplot} \caption{     } \end{figure}
      
      











チーム:



 set key bottom right
      
      





凡例をグラフフィールドの右下隅に配置して、右上および右側に干渉しないようにします。 さらに、Gnuplotコマンドとそのパラメーターは、この例のように、スペルの明確な解釈の程度まで減らすことができます:ti => title。



今、あなたは論文を書いていたが、最後の瞬間に同じ測定値の他の結果を置き換える必要があると想像してください。 グラフを再配置する必要はありません-結果ファイルを変更し、プロジェクトを再構築します。 それだけです! レイアウトはどこにも行きません。 データの変更が広範囲にわたる科学的結論につながらない場合は5分。



最後に、Beamerスライドにチャートを配置する場合、スライド環境にfragileオプションを含める必要があります。そうしないと、コンパイルエラーが発生します。 このように:



 \begin{frame}[fragile] % %   % \end{frame}
      
      







おわりに



質問の研究は昨夜ずっとかかりました。 プレゼンテーションは夜に行わなければなりませんでしたが、私は何とか今日それを成功裏に報告することができました(博士課程の最初の年の報告)。 魂は、科学研究に役立つオープンテクノロジーの可能性を温かく感じました。 どっちに行くか、誰もが自分で選ぶ。 この記事は概要であり、クイックスタートに必要な問題のみを扱っています。 残りはドキュメントから簡単に学ぶことができます。



この例で作成されたドキュメントは、 ここで選択できます



科学研究の成功をお祈りします。また、私の研究に関心をお寄せいただきありがとうございます。



All Articles