首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gnuplot tikz终端,如何在图片中添加命令?

Gnuplot tikz终端,如何在图片中添加命令?
EN

Stack Overflow用户
提问于 2016-11-13 01:58:41
回答 1查看 1.3K关注 0票数 1

我有一些gnuplot代码,可以使用tikz终端创建图形。但是,我想在生成的.tex文件中添加一些tikz代码。

作为MWE,请考虑以下gnuplot代码:

代码语言:javascript
复制
set term tikz standalone
set output "out.tex"
plot sin(x)

假设我想在生成的图上画一个圆,我可以使用\draw (2,2) circle [radius = 2cm]来完成。将此行添加到生成的.tex文件将生成以下代码:

代码语言:javascript
复制
\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)
...

有没有办法告诉gnuplot,我想在图片上添加一些tikz代码,这样它就可以输出一个与我创建的文件类似的.tex文件?阅读文档后,我发现使用此终端可以设置前导码,但不能在其中包含tikz代码。我正在考虑的另一个选择是使用set print output_file,然后print我想要的代码,但是,要么首先在文件中打印代码,然后gnuplot覆盖它,要么在gnuplot打印输出覆盖它之后再打印它。

EN

回答 1

Stack Overflow用户

发布于 2016-11-13 06:43:11

也许这一点很接近:

代码语言:javascript
复制
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生成以下代码:

代码语言:javascript
复制
\node[gp node left] at (0.000,0.000) {\tikz{\draw [green] (2,2) circle [radius = 2cm];}};

别忘了转义反斜杠。set label at之后的选项screen告诉gnuplot将标签放置在相对于屏幕坐标系的位置,从gnuplot命令行查看help coordinates

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40565959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档