내가 무슨 실수를 하고 있는지 알 수 없지만, 예를 들어 \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}