我刚刚使用 matlab2tikz 包含了 matlab 图形。我的图形中有注释。这些注释位于绘图区域之外,以防止与数据重叠。但现在我还希望我的 latex 文件中绘图之外的注释。如果可能的话,我想将其实现到 tikz 文件中(而不是 latex 文件中)。
我尝试使用“minipage
http://tex.stackexchange.com/questions/99224/putting-text-at-the-side-of-a-tikzpicture
setting clip=false
(什么也没做)
小型页面可以工作,但是当我在乳胶中调整绘图大小时,注释并没有缩放,现在在绘图中只占了一半。
using node[text width=6cm, anchor=west, right] at (5,0)
{In this diagram, what can you say about $\angle F$, $\angle B$ and $\angle E$?};
来自同一链接(无效)
我对 Tikz 不是很熟悉。我刚刚尝试了一些不同的方法,但似乎都没有用。
这是 tikz 文件:
\begin{tikzpicture}
\begin{axis}[%
width=0.951\figurewidth,
height=\figureheight,
at={(0\figurewidth,0\figureheight)},
scale only axis,
xmin=30,
xmax=330,
xlabel={$\text{T}_{\text{surr}}\text{ (K)}$},
ymin=0,
ymax=120,
ylabel={$\text{Q}_{\text{Cooling}}\text{ (W)}$},
axis background/.style={fill=white},
title style={font=\bfseries},
title={Cooling power for surrounding temperatures},
axis x line*=bottom,
axis y line*=left
]
\addplot [color=mycolor1,solid,forget plot]
table[row sep=crcr]{%
30 6.97463548006898\\
60 7.00516177264937\\
90 7.36872538108224\\
120 8.92825821383692\\
150 12.7097699247381\\
180 19.3898073983116\\
210 29.107506124354\\
240 42.0222333872511\\
270 58.3725938451868\\
300 78.4696582472676\\
330 102.691450312509\\
};
\end{axis}
\begin{axis}[%
width=1.227\figurewidth,
height=1.227\figureheight,
at={(-0.16\figurewidth,-0.135\figureheight)},
scale only axis,
xmin=0,
xmax=1,
ymin=0,
ymax=1,
hide axis,
axis x line*=bottom,
axis y line*=left
]
**\node[below right, align=left, text=black, draw=black]
at (rel axis cs:0.75,0.15) {G10 \\$\text{ }\epsilon\text{ = 1 }$\\ F = 1 \\$\text{ T}_{\text{start}}\text{ = 330 }$\\$\text{ T}_{\text{end}}\text{ = 30 }$\\$\text{ dT}_{\text{max}}\text{ = 1 }$\\ N = 100};**
\end{axis}
\end{tikzpicture}%
答案1
如果您将clip=false
第二个axis
环境添加到包含注释的环境中,您的代码将正常工作node
。完成此操作后,您可以通过更改的坐标将其移动到您选择的位置\node
。
也就是说,第二个axis
环境在这里并不是真正必要的,您不妨将它添加到第一个axis
环境内部,或者直接添加到其外部,并将其相对于轴放置。
下面的代码演示了这两个选项。请注意,我已添加name=MyAxis
到axis
选项中,并且节点位于MyAxis.north east
。我不知道G10
是什么,但它看起来像是某种标题,因此文本加粗。当然,如果您不想要它,请将其删除\textbf
。我还使用 设置了值列表aligned
。
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots,amsmath}
\newlength{\figurewidth}
\setlength{\figurewidth}{10cm}
\newlength{\figureheight}
\setlength{\figureheight}{5cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
name=MyAxis,
width=0.951\figurewidth,
height=\figureheight,
at={(0\figurewidth,0\figureheight)},
scale only axis,
xmin=30,
xmax=330,
xlabel={${T}_{\text{surr}}\text{ (K)}$},
ymin=0,
ymax=120,
ylabel={$\text{Q}_{\text{Cooling}}\text{ (W)}$},
axis background/.style={fill=white},
title style={font=\bfseries},
title={Cooling power for surrounding temperatures},
axis x line*=bottom,
axis y line*=left,
%clip=false %uncomment this if you want the annotation outside the axis
]
\addplot [color=blue,solid,forget plot]
table[row sep=crcr]{%
30 6.97463548006898\\
60 7.00516177264937\\
90 7.36872538108224\\
120 8.92825821383692\\
150 12.7097699247381\\
180 19.3898073983116\\
210 29.107506124354\\
240 42.0222333872511\\
270 58.3725938451868\\
300 78.4696582472676\\
330 102.691450312509\\
};
\node[below right, align=center, text=black]
at (rel axis cs:0.1,0.9) {\textbf{G10} \\
$\begin{aligned}
\epsilon &= 1\\
F &= 1 \\
T_{\text{start}} &= 330 \\
T_{\text{end}} &= 30\\
\mathrm{d}T_{\text{max}}&= 1\\
N &= 100
\end{aligned}$};
\end{axis}
\node[below right, align=center, text=black]
at (MyAxis.north east) {%
\textbf{G10} \\
$\begin{aligned}
\epsilon &= 1\\
F &= 1 \\
T_{\text{start}} &= 330 \\
T_{\text{end}} &= 30\\
\mathrm{d}T_{\text{max}}&= 1\\
N &= 100
\end{aligned}$};
\end{tikzpicture}%
\end{document}