我希望能够将pgfplots
绘图的宽度控制在 的宽度matrix
。绘图应位于 之下matrix
。理想情况下,绘图的尺寸仅取决于 的大小matrix
(因此如果matrix
发生变化,绘图也会发生变化)。
绘图和matrix
都是更大的绘图的一部分tikzpicture
,其中包含所有相对于彼此定位的其他组件,因此我不想有两个单独的 tikzpictures。这是一个最小的示例代码:
\documentclass{minimal}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}
\matrix[minimum size=4cm] (A) {
\node{1}; & \node{2}; \\
\draw circle (.1); & \fill (-1,-1) rectangle (1,1); \\
};
\begin{axis}
\addplot[red,domain=0:10,samples=25] {x^2};
\end{axis}
\end{tikzpicture}
\end{document}
我还添加了一张我想要的图片(或多或少)。注意:我只能通过使用两个单独的 tikzpictures 来实现这一点...
答案1
您可以通过以下方式创建自己的测量风格
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\tikzset{getwedist/.code args={#1 and #2}{% measures horizontal distance [#1.west-#2.east]
\pgfextra{\pgfpointdiff{\pgfpointanchor{#1}{west}}{\pgfpointanchor{#2}{east}}%
\xdef\mylength{\the\csname pgf@x\endcsname}}}
}
\begin{document}
\begin{tikzpicture}
\matrix[minimum size=4cm,append after command={[getwedist=A and A]}] (A) {
\node{1}; & \node{2}; \\
\draw circle (.1); & \fill (-1,-1) rectangle (1,1); \\
};
\begin{axis}[width=\mylength,height=2cm,anchor=north,at=(A.south)]
\addplot[red,domain=0:10,samples=25] {x^2};
\end{axis}
\end{tikzpicture}
\end{document}
请看一下为什么要避免使用最小类?