如何在 tikz 中的绘图外的特定位置放置文本

如何在 tikz 中的绘图外的特定位置放置文本

我想写\gamma 在我的传奇之上在使用下面显示的代码生成的图中(如图所示)。我通常使用\node at (axis cs: co-ordinate x,co-ordinate y) {text}图。由于图例位于图之外,我不确定如何使用访问图例上方的点\node

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}

\begin{document}


\begin{tikzpicture}
\begin{loglogaxis}[
 %  scale=0.8,
 %  width=\columnwidth,
 %  baseline,
    ylabel={$G(\gamma,t) \:\: \mathrm{(Pa)}$},
    xlabel= t (s),
    legend entries ={0.1,0.2,0.4,0.8},
    legend style={at={(1.3,0.5)},anchor=east,font=\small},
]

\addplot [color=red,line width=1.5pt] table [x=time,y=m01,row sep=newline] {relaxationExpDatafor65v.dat};

\addplot [color=green,line width=1.5pt] table [x=time,y=m02,row sep=newline] {relaxationExpDatafor65v.dat};

\addplot [color=blue,line width=1.5pt] table [x=time,y=m04,row sep=newline] {relaxationExpDatafor65v.dat};

\addplot [color=cyan,line width=1.5pt] table [x=time,y=m08,row sep=newline] {relaxationExpDatafor65v.dat};


%%fits

\addplot [color=black,line width=1pt,densely dashed] table [x=time,y=m01,row sep=newline] {relaxationExpDataPredfor65v.dat};

\addplot [color=black,line width=1pt,densely dashed] table [x=time,y=m02,row sep=newline] {relaxationExpDataPredfor65v.dat};

\addplot [color=black,line width=1pt,densely dashed] table [x=time,y=m04,row sep=newline] {relaxationExpDataPredfor65v.dat};

\addplot [color=black,line width=1pt,densely dashed] table [x=time,y=m08,row sep=newline] {relaxationExpDataPredfor65v.dat};



\end{loglogaxis}
\end{tikzpicture}

\end{document}

生成的图

我希望您不需要代码中调用的 .dat 文件(坦白说,我不确定如何上传它们,因为这是我在这个社区中提出的第一个问题)。提前感谢您的时间!

答案1

只需添加label=above:$\gamma$定义legend style

作为示例,我使用了 Steven 提供的代码:

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
      \begin{tikzpicture}
        \begin{axis}[
            width  = 1*\textwidth,
            height = 4.5cm,
            major x tick style = transparent,
            ybar=1*\pgflinewidth,
            bar width=13pt,
            symbolic x coords={A,B,C,D},
            xtick = data,
            enlarge x limits=0.25,
            ymax=15,
            ymin=0,
            legend cell align=left,
            legend style={
                    at={(1,1.05)},
                    anchor=south east,
                    column sep=1ex,
                    label=above:$\gamma$ %<--------------------
            }
        ]
            \addplot[style={fill=red,mark=none}]
                coordinates {(A, 4.44) (B,0.1) (C,4.37) (D,4.07)};
            \addplot[style={fill=green,mark=none}]
                coordinates {(A, 0.4) (B,0.8) (C,0.3) (D,0.5)};
            \addplot[style={fill=blue,mark=none}]
                coordinates {(A, 0.2) (B,0) (C,0.9) (D,0.8)};
            \addplot[style={fill=yellow,mark=none}]
                coordinates {(A, 9.59) (B,0.2) (C,8.86) (D,8.62)};
        \legend{C1,C2,C3,C4}
      \end{axis}
    \end{tikzpicture}%
\end{document}

在此处输入图片描述

答案2

如果 中没有答案tikz,这里有一种方法可以将代码包装在环境外部tikzpicture。由于我没有足够的代码来编译您的示例,所以我只是从另一个问题中抓取了一个类似的例子。

完全基于以下答案注释分组条形图,只需更改注释的位置及其文本,即可添加注释。在此 MWE 中,我展示了两个嵌套注释:图形内部红色条上的项目符号;图例上的伽玛。

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{stackengine}[2013-09-11]
\begin{document}
    \begin{figure}[]
     \stackinset{c}{-3.92cm}{b}{1.52cm}{$\bullet$}{%
     \stackinset{r}{.6cm}{t}{-.3cm}{$\gamma$}{%
      \begin{tikzpicture}
        \begin{axis}[
            width  = 1*\textwidth,
            height = 4.5cm,
            major x tick style = transparent,
            ybar=1*\pgflinewidth,
            bar width=13pt,
            symbolic x coords={A,B,C,D},
            xtick = data,
            enlarge x limits=0.25,
            ymax=15,
            ymin=0,
            legend cell align=left,
            legend style={
                    at={(1,1.05)},
                    anchor=south east,
                    column sep=1ex
            }
        ]
            \addplot[style={fill=red,mark=none}]
                coordinates {(A, 4.44) (B,0.1) (C,4.37) (D,4.07)};
            \addplot[style={fill=green,mark=none}]
                coordinates {(A, 0.4) (B,0.8) (C,0.3) (D,0.5)};
            \addplot[style={fill=blue,mark=none}]
                coordinates {(A, 0.2) (B,0) (C,0.9) (D,0.8)};
            \addplot[style={fill=yellow,mark=none}]
                coordinates {(A, 9.59) (B,0.2) (C,8.86) (D,8.62)};
        \legend{C1,C2,C3,C4}
      \end{axis}
    \end{tikzpicture}%
   }}
  \end{figure}
\end{document}

在此处输入图片描述

相关内容