为什么我的每个标签/样式都没有显示微小节点?

为什么我的每个标签/样式都没有显示微小节点?

我不知道自己犯了什么错误,但我无法设置全局字体大小,比如\tiny标签节点的字体大小。我试过了every label/.style={font=\tiny}。它似乎对轴标签有效,但对标签节点无效。我的 MWE:

\documentclass[12pt]{article}
\usepackage[dvips]{graphicx,color}
\usepackage{wasysym}

\usepackage{pgfplots}
\usepackage{tikz}
\usepackage{xcolor}

\usetikzlibrary{arrows,plotmarks}
\usetikzlibrary{intersections,positioning}

\begin{document}
\pgfplotsset{
  standard/.style={%Axis format configuration
    axis x line=middle,
    axis y line=middle,
    enlarge x limits=0.15,
    enlarge y limits=0.15,
    every label/.style={font=\tiny},
    every axis x label/.style={at={(current axis.right of origin)},anchor=north west},
    every axis y label/.style={at={(current axis.above origin)},anchor=north east},
   every axis plot post/.style={mark options={fill=black}}
    }
 }
\begin{figure}[h!]
\begin{center}
\begin{tikzpicture}[baseline=(current bounding box.center)]
    \begin{axis}[axis lines=middle, xtick={-1,0,1},
      xticklabels={-1, 0, 1},
      extra x tick style={
      xticklabel style={yshift=0.5ex, anchor=south}},
      xmin=-4,xmax=4, ytick={\empty}, yticklabels={}, 
      ymin=-2, ymax=2, axis on top,
      enlarge y limits=0.35,
      width=6cm,
      xlabel={$n$}, x label style={anchor=north},
      ylabel={$x[n]$}, y label style={anchor=west}]
      \addplot+[ycomb,black,thick] plot coordinates
      {(-1,1) (0,2) (1,1)};
      \node[anchor=south west] at (axis cs:0,2) {$2$};
      \node[anchor=south east] at (axis cs:-1,1) {$1$};
      \node[anchor=south west] at (axis cs:1,1) {$1$};
      \end{axis}
      \end{tikzpicture}%
      \hspace*{3mm} {\Huge\pointer} \hspace*{3mm}%
      \begin{tikzpicture}[baseline=(current bounding box.center)]
      \pgfplotsset{every tick label/.append style={font=\tiny},
        every label/.append style={font=\tiny}}
      \begin{axis}[axis lines=middle, xtick={-3,-2,...,3},
        xticklabels={{}, {}, {}, 0, 1, 2, 3},
        extra x ticks={-2,-1},
        extra x tick labels={$-3$,$-2$,$-1$},
        extra x tick style={
          xticklabel style={yshift=0.5ex, anchor=south}},
        xmin=-4,xmax=4, ytick={\empty}, yticklabels={}, 
        ymin=-2, ymax=2, axis on top,
        enlarge y limits=0.35,
        width=6cm,
        xlabel={$n$}, x label style={anchor=north},
        ylabel={$y[n]$}, y label style={anchor=west}]
        \addplot+[ycomb,black,thick] plot coordinates
        {(-3,0) (-2,-1) (-1,-2) (0,0) (1,2) (2,1) (3,0)};
        \node[anchor=north] at (axis cs:-2,-1) {$-1$};
        \node[anchor=north] at (axis cs:-1,-2) {$-2$};
        \node[anchor=west] at (axis cs:1,2) {$2$};
        \node[anchor=west] at (axis cs:2,1) {$1$};
      \end{axis}
    \end{tikzpicture}%
  \end{center}
\end{figure}
\end{document}

在此处输入图片描述

答案1

造成这种情况的原因有很多,但最主要的原因是你没有TikZ 意义上的任何“标签节点”。标签节点是应用于节点本身的节点,如\node [label=above:I am a label node] {I am the main node};。您使用的节点只是“常规”节点。

说你可以想到然后陈述例如every node/.append style={font=\tiny,green}(在\tikzset),但因为一切包含一些文本的节点,这比你想要的要多得多。试一试看看会发生什么。

我允许自己稍微修改一下你的 MWE,并重新排序了一些内容。然后我评论了所有“有点奇怪”/“不直接”的内容,以防你还想了解“微小节点”问题以外的其他内容。

如果您只对“微小节点内容”感兴趣,请搜索被虚线包围的块。

有关更多详细信息,请查看代码中的注释。

\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
% -----------------------------------------------------------------------------
% one possibility to show tiny labels is to define a new style which you
% apply later to the corresponding nodes
\tikzset{
    Label/.style={
        font=\tiny,
        red,
    },
}
% -----------------------------------------------------------------------------
%\pgfplotsset{
%    % this (whole) style isn't *used* in the following tikzpictures/axis
%    % environments so it isn't needed here
%    standard/.style={%Axis format configuration
%        axis x line=middle,
%        axis y line=middle,
%        enlarge x limits=0.15,
%        enlarge y limits=0.15,
%        every label/.style={font=\tiny},
%        every axis x label/.style={
%            at={(current axis.right of origin)},
%            anchor=north west,
%        },
%        every axis y label/.style={
%            at={(current axis.above origin)},
%            anchor=north east,
%        },
%        every axis plot post/.style={
%            mark options={fill=black},
%        },
%    },
%}
\begin{document}
\begin{tikzpicture}[
%    % in this case this statement is not needed
%    baseline=(current bounding box.center),
]
    \begin{axis}[
        axis lines=middle,
        xtick={-1,0,1},
%        % you don't need this, because the tick labels are identical to the ticks
%        xticklabels={-1, 0, 1},
%        % there are no `extra x ticks` so you don't need this as well
%        extra x tick style={
%            xticklabel style={yshift=0.5ex, anchor=south},
%        },
        xmin=-4,
        xmax=4,
        ytick={\empty},
%        % since you don't state `ytick's you don't to provide corresponding labels ...
%        yticklabels={},
        ymin=-2, ymax=2,
        axis on top,
        enlarge y limits=0.35,
        width=6cm,
        xlabel={$n$},
        ylabel={$x[n]$},
        x label style={anchor=north},
        y label style={anchor=west},
    ]
        \addplot+ [ycomb,black,thick] coordinates {
            (-1,1) (0,2) (1,1)
        };
        \node [anchor=south west] at (axis cs:0,2)  {$2$};
        % ---------------------------------------------------------------------
        % as stated earlier there are plenty of ways to achieve what you want
        % to do, here are some possibilities
        %
        % 1. provide what you need directly to the node
        \node [
            anchor=south east,
            font=\tiny,
            red,
        ] at (axis cs:-1,1) {$1$};
        % 2. apply the created style directly to the node
        \node [
            anchor=south west,
            Label,
        ] at (axis cs:1,1)  {$1$};
    \end{axis}
\end{tikzpicture}

\begin{tikzpicture}[
%    baseline=(current bounding box.center),
]
        \pgfplotsset{
            every tick label/.append style={font=\tiny},
%            % this style is a TikZ style for "labels of nodes" and not nodes that are labels,
%            % that is why you don't see any changing font sizes
%            % said that, it is also not needed here
%            every label/.append style={font=\tiny},
        }
    \begin{axis}[
        axis lines=middle,
        xtick={-3,-2,...,3},
        % as you can see the zero isn't shown, although you stated it here
        % this is because of the key `hide obscured x ticks' which is true by default when
        % `axis lines' are set to `middle' or the alias `center'
        xticklabels={{}, {}, {}, 0, 1, 2, 3},
        % also this is strange. You state the ticks at positions -2 and -1, ...
        extra x ticks={-2,-1},
        % ... but apply the numbers -3 and -2 to them. Is that intended?
        extra x tick labels={$-3$,$-2$,$-1$},
        extra x tick style={
            xticklabel style={yshift=0.5ex,anchor=south}, },
        xmin=-4, xmax=4,
        ytick={\empty},
        yticklabels={},
        ymin=-2, ymax=2,
        axis on top,
        enlarge y limits=0.35,
        width=6cm,
        xlabel={$n$},
        ylabel={$y[n]$},
        x label style={anchor=north},
        y label style={anchor=west},
    ]
        \addplot+ [ycomb,black,thick] plot coordinates
            {(-3,0) (-2,-1) (-1,-2) (0,0) (1,2) (2,1) (3,0)
        };
        % ---------------------------------------------------------------------
        % 3. but you could also scope the nodes and apply the style of the
        %    nodes
        \begin{scope}[
            font=\tiny,
            red,
        ]
            \node [anchor=north] at (axis cs:-2,-1) {$-1$};
            \node [anchor=north] at (axis cs:-1,-2) {$-2$};
        \end{scope}
        % 3. or of course apply the style in the scope
        \begin{scope}[
            Label,
        ]
            \node [anchor=west]  at (axis cs:1,2)   {$2$};
            \node [anchor=west]  at (axis cs:2,1)   {$1$};
        \end{scope}
        % ---------------------------------------------------------------------
    \end{axis}
\end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容