我想使用 PGF-Tikz 绘制以下图表:
使用以下代码:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[>=latex]
\begin{axis}[mystyle/.style={semithick},
axis x line=center,
axis y line=center,
xtick={0,1,2,4,8},
extra y ticks={3.5},
extra y tick labels={$\nu_p(\alpha)$},
xlabel={$n$},
ylabel={$\nu_2(a_n)$},
xlabel style={right},
ylabel style={above},
x tick label style={anchor=north,below,yshift=0.5ex},
yticklabel style={red},
extra y tick style={yticklabel style={color={black}}},
xmin=-1,
xmax=10,
ymin=-5,
ymax=4.5]
% Main lines
\addplot[mystyle,green,thick]coordinates{(0,3.5)(1,0.5)(2,0)};
\addplot[mystyle,orange,thick]coordinates{(2,0)(4,0)};
\addplot[mystyle,thick]coordinates{(4,0)(8,2)};
% vertical dashed lines
\addplot[mystyle,dashed]coordinates{(8,2)(8,0)};
\end{axis}
\end{tikzpicture}
\end{document}
我得到了以下图片-
我不知道如何删除垂直轴上的数字,即我想删除-2,2,4,-4
垂直轴上的标签或数字。
我还想增加横轴上数字之间的间隙。
请帮忙。
请更正我的代码。
但我想删除horizontal cut
垂直轴上的。
答案1
像这样:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{ytick style={draw=none}}
\begin{document}
\begin{tikzpicture}[>=latex]
\begin{axis}[mystyle/.style={semithick},
axis x line=center,
axis y line=center,
xtick={0,1,2,4,8},
extra x ticks={0,0}, %adds tick
extra x tick style={ xticklabel style={below right}}, %moves 0 a little to the right so it does not collide the y axis.
extra y ticks={3.5},
extra y tick labels={$\nu_p(\alpha)$},
xlabel={$n$},
ylabel={$\nu_2(a_n)$},
xlabel style={right},
ylabel style={above},
x tick label style={anchor=north,below,yshift=0.5ex},
yticklabels={,,} %this here I changed
extra y tick style={yticklabel style={color={black}}},
xmin=-1,
xmax=10,
ymin=-5,
ymax=4.5]
% Main lines
\addplot[mystyle,green,thick]coordinates{(0,3.5)(1,0.5)(2,0)};
\addplot[mystyle,orange,thick]coordinates{(2,0)(4,0)};
\addplot[mystyle,thick]coordinates{(4,0)(8,2)};
% vertical dashed lines
\addplot[mystyle,dashed]coordinates{(8,2)(8,0)};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
您可以通过 删除 y 轴上的刻度ytick=\empty
。下面的 MWE 还删除了代码中的所有杂乱内容。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17} % <---
\begin{document}
\begin{tikzpicture}
\begin{axis}
axis lines=center, % <---
xtick={1,2,4,8},
extra x ticks={0}, % <---
ticklabel style={fill=white,font=\footnotesize}, % <---
ytick=\empty, % <--- remove yticks
extra y ticks={3.5},
extra y tick labels={$\nu_p(\alpha)$},
xlabel={$n$},
ylabel={$\nu_2(a_n)$},
xlabel style={right},
ylabel style={above},
xmin=-1,
xmax=10,
ymin=-4.5,
ymax=4.5,
every axis plot post/.append style={thick}% thickness of plotted lines
]
% Main lines
\addplot[green] coordinates {(0,3.5)(1,0.5)(2,0)};
\addplot[orange] coordinates {(2,0)(4,0)};
\addplot[black] coordinates {(4,0)(8,2)};
% vertical dashed lines
\draw[dashed] (8,2) -- (8,0);
\end{axis}
\end{tikzpicture}
\end{document}
编辑: 正如 OP 在评论中所要求的那样,在零点处添加了 x 刻度标签。