如何将一个 y 标签向右移动

如何将一个 y 标签向右移动

如下图所示,y 轴上的标签“4”妨碍了绘图。如何将其移到右侧?我尝试添加以下语句:

psyTick[ylabelPos=right](4){4}

但没有作用。

在此处输入图片描述

以下是完整代码:

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}

\begin{document}

\psset{xunit=2,
       yunit=0.5,
       linewidth=0.03,
       tickwidth=0.03}

\begin{pspicture}(-1.775,-2)(1.775,6.8)
\psaxes[Dx=1,labels=x,xticksize=-4pt,Dy=2]{->}(0,0)(-1.77,0)(1.7,6.4)[$t$,0][$$,90]
\psyTick[ylabelPos=left](2){2}
\psyTick[ylabelPos=right](4){4}
\psline[linecolor=blue,linewidth=0.05](-1.7,0)(-1,0)(-1,4)(0,4)(0,2)(1,2)(1,0)(1.6,0)
\rput(-0.6,4.5){$x_1(-2(t-1))$}
\end{pspicture}

\end{document}

答案1

您必须调整\psyTick工作方式,因为它目前不支持放置:

在此处输入图片描述

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}

\makeatletter
\def\psyTick@ii#1(#2)#3{{
  \pst@killglue
  \addbefore@par{arrows=-,linewidth=\psk@ytickwidth\pslinewidth}
  \use@par
  \psline(\pst@yticksizeB,#2)(\pst@yticksizeA,#2)
  \expandafter\ifx\psk@ylabelPos\tw@ %      2=right
    \rput[l]{#1}(! \psk@origin
                    \pst@number\pst@yticksizeB \pst@number\psylabelsep add
                    \pst@number\psxunit div #2){\psvlabel{#3}}\ignorespaces
  \else
    \expandafter\ifx\psk@ylabelPos\@ne %    1=axis
      \rput{#1}(! \psk@origin
                      0 #2){\psvlabel{#3}}\ignorespaces
    \else % \psk@ylabelPos=\z@ 0=left
      \rput[r]{#1}(! \psk@origin
                      \pst@number\pst@yticksizeB \pst@number\psylabelsep add
                      \pst@number\psxunit div neg #2){\psvlabel{#3}}\ignorespaces
  \fi\fi}}
\makeatother

\begin{document}

\psset{xunit=2,
       yunit=0.5,
       linewidth=0.03,
       tickwidth=0.03}

\begin{pspicture}(-1.775,-2)(1.775,6.8)
  \psaxes[Dx=1,labels=x,xticksize=-4pt,Dy=2]{->}(0,0)(-1.77,0)(1.7,6.4)[$t$,0][$$,90]
  \psyTick[ylabelPos=l](2){2}
  \psyTick[ylabelPos=a](3){3}
  \psyTick[ylabelPos=r](4){4}
  \psline[linecolor=blue,linewidth=0.05](-1.7,0)(-1,0)(-1,4)(0,4)(0,2)(1,2)(1,0)(1.6,0)
  \rput(-0.6,4.5){$x_1(-2(t-1))$}
\end{pspicture}

\end{document}

它不再是固定/单个的\rput,而是根据 的值进行调整,\psk@ylabelPos以决定是否将标签放在l左 ( \z@)、r右 ( \tw@) 或a轴 ( \@ne) 上。

答案2

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\begin{document}

\psset{xunit=2,yunit=0.5,linewidth=0.03,tickwidth=0.03}
\begin{pspicture}(-1.775,-2)(1.775,6.8)
  \psaxes[Dx=1,labels=x,xticksize=-4pt,Dy=2]{->}(0,0)(-1.77,0)(1.7,6.4)[$t$,0][,90]
  \uput[180](0,2){2}  \uput[0](0,4){4}
  \psline[linecolor=blue,linewidth=0.05](-1.7,0)(-1,0)(-1,4)(0,4)(0,2)(1,2)(1,0)(1.6,0)
  \rput(-0.6,4.5){$x_1(-2(t-1))$}
\end{pspicture}

\end{document}

在此处输入图片描述

相关内容