yLabels 表示负值

yLabels 表示负值

在标记轴时,可以将标签替换为(例如 y 轴)yLabels={<label-pattern>}。如果我理解正确的话,给定的标签将从轴的原点开始替换其他数字标签,然后替换后续标签 积极的方向(增加数字标签)。因此,无法替换数字标签以下起源。有没有办法改变行为,以便标签替换从最小的数字标签开始,这样下面的操作就可以工作(a 替换 -1,b 替换 0,c 替换 1)?

\documentclass{article}
\usepackage{pstricks,pst-plot}
\begin{document}
\begin{pspicture}
\psaxes[yLabels={a,b,c}](0,0)(0,-1)(1,1)
\end{pspicture}
\end{document}

我提到不同版本的 pstricks 似乎会产生不同的结果,但最新版本(在 archlinux 下的 texlive-pstricks-2016.42276-1 中发布)输出上述奇怪的行为。

答案1

使用最新版本pst-plot.tex的 pf (1.76)http://comedy.dante.de/~herbert/texnik/tex/generic/pst-plot/

\documentclass{article}
\usepackage{pstricks,pst-plot}
\begin{document}
\begin{pspicture}(-0.5,-1.5)(1.5,1.5)
\psaxes[showorigin=false,yLabels={a,b,c}](0,0)(0,-1)(1,1)
\end{pspicture}
\begin{pspicture}(-0.5,-0.5)(1.5,2.5)
\psaxes[showorigin=false,yLabels={a,b,c}](1,2)
\end{pspicture}
\begin{pspicture}(-0.5,-2.5)(1.5,.5)
\psaxes[showorigin=false,yLabels={a,b,c}](0,0)(0,-2)(1,0)
\end{pspicture}
\end{document}

在此处输入图片描述

答案2

这是一个解决方法:它包括绘制两次,并使用dy和的负值yunit

\documentclass{article}
\usepackage{pst-plot, auto-pst-pdf}%

\begin{document}

\begin{pspicture}
\psaxes[yLabels={,a, b,}](0,0)(- 1,0)(1,2)%s
\psset{dy = -1, yunit = -1}%,
\psaxes[yLabels={,c,d}, linecolor = red](0,0)(0,0)(0,2.05)
\end{pspicture}

\end{document} 

在此处输入图片描述

答案3

在阅读了 Bernard 的解决方法后,我在这里写了一种类似但更优雅的方法来实现我在原始帖子中描述的内容。这个想法很简单,就是移动最小数字标签的数量标签。这需要单独处理另一个轴(并使用 showorigin=false 以避免第二个轴与第一个轴的原点标签重叠)。

\documentclass{article}
\usepackage{pstricks,pst-plot}
\begin{document}
\begin{pspicture}
% \psaxes[yLabels={a,b,c}](0,0)(0,-1)(1,1) % would not work
\psaxes[showorigin=false](0,0)(1,0) % x-axis only, 0 y-width
\psaxes[yLabels={a,b,c}](0,-1)(0,1) % y-axis only, 0 x-width
\end{pspicture}
\end{document}

在此处输入图片描述

但是,这种解决方法并不完全令人满意,因为如果我决定使用 yLabels={} 来代替数字标签(例如,我会在宏中提供一个空参数),那么标签就不正确(因为它们被移位了!)。如果没有人知道如何避免这种情况,我会接受我自己的答案(也许在 pst-plot 中内部更改 yLabels 选项?)

相关内容