使用输入时,tikz 中的节点和箭头不显示,pgfplots 中的其余部分可以显示

使用输入时,tikz 中的节点和箭头不显示,pgfplots 中的其余部分可以显示

一般来说,我会在单独的 tex 文件中创建所有 tikzpictures,然后使用命令将其输入\input到主 tex 文件中。

我开始使用我大学的模板作为主文件,现在我发现在编译时在最终的 pdf 中没有出现任何内容\draw\node或者至少我在绘图区域内看不到它们)。

似乎只有 pgfplots 有效。我已将以下软件包包含在内:蒂克兹pgf图在主文件中仍然没有任何内容。在我的其中一个图中,节点确实出现了,但它们在 y 轴上有另一个刻度(我必须将节点中 y 坐标的值乘以 10 才能将它们固定到正确的位置)。

知道为什么使用 tikzpicture 插入\input{mytikz.tex}tikz 项目无法正常工作吗?如何修复它?

以下是我所讲内容的一个例子:

  1. 仅使用 tikzpicture 编译 tex 文件 仅包含 tikzpicture 的 tex 文件

  2. 编译主文件 包含文本和输入图形的主文件

示例代码:

    \documentclass[border=10pt]{standalone}
    \usepackage{tikz,pgf,pgfplots} 


    % Libraries
    \usetikzlibrary{intersections}
    \usetikzlibrary{arrows}
    \usetikzlibrary{calc}

    % Others
    \pgfplotsset{compat=newest}

    \begin{document}

    %\resizebox{6cm}{!}{
        \begin{tikzpicture}[dots/.style={circle,draw=blue,fill=blue, inner sep=-1pt}]

        \begin{semilogxaxis}[
        scale only axis, % scale axis to specified size, otherwise the complete picture takes the size
    %   scale=1,
    %   normalsize,
    %   x=8cm,
    %   xmin=1, xmax=200,
    %   ymin=-1, ymax=0,
        width=6cm,
        height={},
    %   ticks=none,
        axis x line=top,
        axis y line=left,
        y axis line style={stealth-},
    %   xlabel={$ln(\tau_{rz})$},
        x label style={above,font=\large,at={(1,1)}},
    %   ylabel={$\delta_{head}$},
        y label style={font=\Large},
        legend style={at={(0.01,0.01)},anchor=south west,font=\scriptsize},
        legend columns=1,
        legend style={/tikz/column 3/.style={column sep=10pt}},
        legend cell align=left,
        log ticks with fixed point,
        ]

            \addlegendimage{empty legend}
            \addlegendentry{A $\rightarrow$ B  $\Delta\tau$=0 with t}
            \addlegendimage{empty legend}
            \addlegendentry{A $\rightarrow$ C  $\Delta\tau$=change with t}

            % NC-line
            \addplot[name path global=nc1,domain=30:60]{-0.01*ln(x)}
            coordinate [pos=0.3] (K1)
            coordinate [pos=0.6] (K2)
            ;   
            \addplot[name path global=nc2,domain=60.01:160]{-0.1*ln(x)+(0.1*ln(60)-0.01*ln(60))}
            coordinate [pos=0.3] (L1)
            coordinate [pos=0.4] (L2)
            ;

            % Isotachs
            \addplot[domain=50.01:160]{-0.1*ln(x)+(0.1*ln(60.01)-0.01*ln(60))-0.03};    
            \addplot[name path global=iso2,domain=45.01:160]{-0.1*ln(x)+(0.1*ln(60.01)-0.01*ln(60))-0.05};
            \addplot[domain=40.01:160]{-0.1*ln(x)+(0.1*ln(60.01)-0.01*ln(60))-0.07};

            % Dots  
            \node[dots,label=right:\normalsize A] (A1) at (100,-0.092) {};

            \node[dots,label=right:\normalsize B] (B1) at (100,-0.092-0.05) {};
            \node[dots,label=left:\normalsize C] (C1) at (90,-0.081-0.05) {};

            \node[label=right:\normalsize time] (t11) at (120,-0.092) {};
            \node[] (t22) at (120,-0.092-0.05) {};


            % Arrows
            \draw [->,black,thick,shorten <=1pt, shorten >=1pt,densely dashed] (A1.south)--(B1.north);
            \draw [->,black,thick,shorten <=1pt, shorten >=1pt,densely dashed] (A1.south)--(C1.north);
            \draw [|->,red,thick,shorten <=1pt, shorten >=1pt,solid] (t11.south)--(t22.north);


        \end{semilogxaxis}


        \end{tikzpicture}
    %}          
    \end{document}

注释掉单文件前言后,我在主文件中输入:

\begin{figure}
\input{../plots/model/myplot.tex}
\end{figure}

顺便说一下,我的图是半对数刻度的。删除刻度后,节点显示在图空间的某个位置,但我不知道为什么它们与指定的坐标不匹配。

节点位置错误

答案1

我是 Gabriel 使用的模板的作者,我确实使用了覆盖并记住图片作为封面。

axis cs但我很确定这个问题的真正解决方案是在指定绘图轴 cs 中的节点时使用

pgfplots 画廊展示它的多种用途。

\node[...] at (axis cs:0.18,0.74,0.08) {...};

(我可能错了)

相关内容