2016-11-12 17 views
1

私は、tikz端末を使ってグラフを作るgnuplotコードをいくつか持っています。しかし、私は生成された.texファイルにいくつかのtikzコードを追加したいと思います。 MWEとしてGnuplot tikz terminal、どのように画像にコマンドを追加しますか?

は、以下のgnuplotのコードを考えてみます。

set term tikz standalone 
set output "out.tex" 
plot sin(x) 

をさんは、私が\draw (2,2) circle [radius = 2cm]を使用して行うことができます生成されたプロット、上の円を描きたいとしましょう。それは私が作ったのと同様の.texファイルを出力しますので、

\documentclass[10pt]{article} 
\usepackage[T1]{fontenc} 
\usepackage{textcomp} 

\usepackage[utf8x]{inputenc} 

\usepackage{gnuplot-lua-tikz} 
\pagestyle{empty} 
\usepackage[active,tightpage]{preview} 
\PreviewEnvironment{tikzpicture} 
\setlength\PreviewBorder{\gpbboxborder} 
\begin{document} 

\begin{tikzpicture}[gnuplot] 


%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
%!! ADDED BY HAND 
\draw (2,2) circle [radius = 2cm]; 
%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 


%% generated with GNUPLOT 5.0p3 (Lua 5.1; terminal rev. 99, script rev. 100) 
... 

私は絵の一部は、TikZコードをしたいのgnuplotを伝えるためにどのような方法があります:.texファイル生成利回りに次のコードをこの行を追加しますか?私はこの端末でプリアンブルを設定することができますが、そこにtikzコードを含めることはできません。 私が検討していたもう一つの選択肢は、set print output_fileを使用していましたが、次にprintコードが必要です。そのコードがファイル内で最初に印刷され、gnuplotが上書きしたり、gnuplotが出力を印刷した後に印刷したりします。

答えて

1

多分これは近づく:

set label 1 "\\tikz{\\draw [green] (2,2) circle [radius = 2cm];}" at screen 0.0, screen 0.0 

set label 2 "by gnuplot" textcolor rgb "#00FF00" at 0, -0.6 
set label 3 "manual" textcolor rgb "#0000FF" at 0, -0.5 

set term tikz standalone 
set output "out.tex" 
plot sin(x) 

あり、あなたの手作りの描画コマンドによって生成された円に比べて小さなオフセットがあるが、それは十分に近いかもしれません。

drawコマンドは、生成されたtexファイルに直接配置されず、drawコマンドをnodeに置きます。私はこれがオフセットを引き起こすと思う。 gnuplotはこれを生成します。

\node[gp node left] at (0.000,0.000) {\tikz{\draw [green] (2,2) circle [radius = 2cm];}}; 

enter image description here

バックスラッシュをエスケープすることを忘れないでください。 set label atの後にオプションscreenを指定すると、gnuplotは画面座標系に対するラベルを配置するよう指示します.gnuplotコマンドラインからhelp coordinatesをご覧ください。

+0

円を '(5,5)'のように別の場所に描画しようとすると、グラフ内の円が描かれます。私は他のものを描こうとしました、そして、それは常に左下隅に描画されます。また、http://tex.stackexchange.com/questions/1003/in-tikz-is-it-possible-to-nest-nodesで提案されているように、 'tikzpicture'環境と行列ノードを含めて試しました何も働いていません。すべてがノードに置かれているので、そのコードを.texファイルに追加する代わりにスクリプトを作成する価値があります。 – Nister

+0

ああ、そうです。 (2,2)または(5,5)を完全に無視するようです。または、(2,2)がノードに関連しており、ノードのコンテンツがトリミングされています。しかし、 'set label 1 '\\ tikz {\\ draw [green](0,0)circle [radius = 2cm];}" at -5、-0.2'のようにラベルを正しい位置に移動させるのはどうでしょうか? 'at -5、-0.2'はノードの左下隅です。正しい座標を見つけることは難しいかもしれません。おそらく、外部スクリプト( 'system'で呼び出すことができる)がよりクリーンな解決策であるかもしれません。 – maij

関連する問題