改进此图表

改进此图表

请问如何使这个图变大,并在 $\pi/2$ 处留出空间……就像这张图片一样

\documentclass[border=3mm]{standalone} 
\usepackage{pgfplots} 
\pgfplotsset{compat=1.16} 

\begin{document} 
\begin{tikzpicture} 
\begin{axis}[width=9cm,height=4cm, 
axis lines = middle, 
grid=both, 
minor tick num=5, 
ticklabel style={fill=white,font=\scriptsize, inner sep=1pt}, 
xmin=-365, xmax=365, 
xtick={-360,-270,-180,-90, 0, 90, 180, 270,360}, 
xticklabels={ $-2\pi$,$-3\pi/2$,$-\pi$, $-\pi/2$, 0, $\pi/2$, $\pi$,$3\pi/2$,$2\pi$ }, 
ymin=-2, ymax=2, 
ytick={-2,-1,...,2}, 
legend style={draw=none,fill=none, font=\scriptsize, 
anchor=north east, at={(1,1)}, 
legend columns=-1}, 
domain=-360:360, 
samples=181, 
no marks\addplot +[red,thick] {tan(x)}; 
\addplot +[blue,thick] {cot(x)}; 
\legend{$\tan(x)$, $\cot(x)$} 
\end{axis} 
\end{tikzpicture} 
\end{document}

在此处输入图片描述在此处输入图片描述

答案1

我不确定我是否理解了你的问题。你喜欢这样的东西吗?

在此处输入图片描述

上图是通过以下方式获得的(与您的 MWE 相比,所有变化都以 标记% <---):

\documentclass[border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\begin{document}
    \begin{tikzpicture}
\begin{axis}[width=12cm,height=6cm,  % <--- determine size of image
    axis lines = middle,
    axis on top,                     % <---axes and grid id draw over function curves 
    grid=both,
    minor tick num=3,
    ticklabel style={fill=white,font=\scriptsize, 
                     inner sep=1pt, minimum height=1em}, % <--- all ticks labels has 
                                                          % the same baseline (are vertical aligned)
    xmin=-365, xmax=365,
    xtick={-360,-270,...,360},
    extra x ticks = {0},             % added is tick at $x=0$, 
                                     % it write "0" at coordinate origin
    xticklabels={ $-2\pi$,$-\frac{3\pi}{2}$,$-\pi$, $-\frac{\pi}{2}$, 0, 
                  $\frac{\pi}{2}$, $\pi$,$\frac{3\pi}{2}$,$2\pi$ }, % <--- ticks at \pi/2 are write as fraction $\frac{\pi}{2}$
    ymin=-2.2, ymax=2.2,
    ytick={-2,-1,...,2},
    legend style={draw=none,fill=white, fill opacity=0.75,      % <--- added fill opacity, 
                                                                 % now the grid is visible through legend bode
                 font=\scriptsize, text opacity=1, inner sep=1pt, % <--- text is not transparent
                  anchor=north east, at={(1,1)}, legend columns=-1},
    domain=-360:360,
    samples=181,
    no marks
            ]
\addplot +[red,thick] {tan(x)};
\addplot +[blue,thick] {cot(x)};
\legend{$\tan(x)$, $\cot(x)$}
\end{axis}
    \end{tikzpicture}
\end{document}

编辑: 在上面的代码中与您的 MWE 相比,更改了以下内容:

  • 图像宽度增加(从 9cm 增加到 12cm)。在文档类中,原样article...例如,它可以等于\textwidth设置width=\linewidth
  • 轴和线被移到图表的顶部,这样标签更加清晰可见。
  • 在刻度标签样式中,标签节点的最小高度相等。这样,所有标签都位于基线上。
  • 角分数写为$\frac{\pi}{2}等(与此相比,标签变得更短$\pi/2$
  • 图例样式添加了fill=white透明度fill opacity=0.75。这样可以看到背景中网格的填充情况。为了更好地显示图例中的文本,使用 删除了文本透明度text opacity=1

  • 所有这些更改均已在代码中标记,正如已经提到的,并且现在也在我对您上一个问题的回答中完成了。

相关内容