Por que todos os meus rótulos/.style não mostram pequenos nós?

Por que todos os meus rótulos/.style não mostram pequenos nós?

Não consigo descobrir qual erro estou cometendo, mas não consigo definir o tamanho da fonte global, por exemplo, \tinypara os nós do rótulo. Tentei every label/.style={font=\tiny}. Parece estar funcionando para os rótulos dos eixos, mas não para o nó do rótulo. Meu 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}

insira a descrição da imagem aqui

Responder1

Isso tem várias causas, mas a principal razão é que você nãoterquaisquer "nós de rótulo" no sentido de TikZ. Nós de rótulo são nós aplicados aos próprios nós, como \node [label=above:I am a label node] {I am the main node};. Os nós que você está usando são apenas nós "regulares".

Disse que você pode ter uma ideia para então declarar, por exemplo every node/.append style={font=\tiny,green}(no \tikzset), mas porquetudoque contém algum texto é um nó, seria muito mais do que você deseja. Experimente para ver o que acontece.

Eu me permiti modificar um pouco o seu MWE e reordenei algumas coisas. Aí comentei tudo que é "um pouco estranho"/"não direto", caso você também queira aprender alguma outra coisa além da questão do "nó minúsculo".

Se você estiver interessado apenas nas "coisas de nós minúsculos", procure os blocos que estão cercados por linhas tracejadas.

Para mais detalhes, dê uma olhada nos comentários no código.

\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}

imagem mostrando o resultado do código acima

informação relacionada