psplot 中左右轴标签不同

psplot 中左右轴标签不同

这个问题与psgraph 图表左右两侧有 y 轴和轴标签但可以独立存在,因为它实际上与循环和变量有关。

我真的很难过不得不问这个问题,我显然无能。

在下面的代码中,我可以用 替换 13 个连续\rput命令集(靠近底部)吗\multido{...}

目标是使右轴上的刻度与左轴上的刻度不同。我已经做到了这一点,但代码太不优雅了,一定有合适的方法。似乎你应该能够做到,\def\anumber{lowest y axis value string }然后在里面做一些简单的算术,\multido把所需的文本放在所需的位置。

\begin{pspicture}(1.2,1)

\readdata{\vin}{largesignalvin.txt}
\readdata{\vout}{largesignalvout.txt}
\readdata{\idone}{largesignalID1.txt}
\readdata{\idtwo}{largesignalID2.txt}

\psset{llx=-1cm,lly=-1cm}

\psset{xAxisLabel={Time [ms]}, xAxisLabelPos={c,-0.3in}, yAxisLabel={Voltage [V]}, yAxisLabelPos={-0.3in,c}}

\begin{psgraph}[axesstyle=axes, xticksize=0 12, yticksize=0 5, subticks=0, Dx=0.5, Oy=-6](0,-6)(5,6){7cm}{5cm}

\pstScalePoints(1e3,1e0){}{}

\listplot[linecolor=blue,linewidth=2pt]{\vin}
\listplot[linecolor=black,linewidth=2pt]{\vout}

\rput[r](5.58,-6){$-1.2$}
\rput[r](5.58,-5){$-1.0$}
\rput[r](5.58,-4){$-0.8$}
\rput[r](5.58,-3){$-0.6$}
\rput[r](5.58,-2){$-0.4$}
\rput[r](5.58,-1){$0.2$}
\rput[r](5.58,-0){$0.0$}
\rput[r](5.58,1){$0.2$}
\rput[r](5.58,2){$0.4$}
\rput[r](5.58,3){$0.6$}
\rput[r](5.58,4){$0.8$}
\rput[r](5.58,5){$1.0$}
\rput[r](5.58,6){$1.2$}

\rput{90}(5.85,0){Current[$\mu$A]}

\pstScalePoints(1e3,5e3){}{}
\listplot[linecolor=red,linewidth=2pt]{\idone}
\listplot[linecolor=green,linewidth=2pt]{\idtwo}

\end{psgraph}

\end{pspicture}

如果需要,数据文件可从以下网站获取:http://www.iceamplifiers.co.uk/latex/[插入文件名称].txt

答案1

不需要 \multido。使用第二个轴:

\documentclass{scrartcl}
\usepackage{pst-plot}
\begin{document}

\readdata{\vin}{largesignalvin.txt}
\readdata{\vout}{largesignalvout.txt}
\readdata{\idone}{largesignalID1.txt}
\readdata{\idtwo}{largesignalID2.txt}

\psset{llx=-1cm,lly=-1cm,
  xAxisLabel={Time [ms]}, xAxisLabelPos={c,-0.3in}, 
  yAxisLabel={Voltage [V]}, yAxisLabelPos={-0.3in,c}}

\begin{psgraph}[axesstyle=axes,xticksize=0 12,yticksize=0 5,subticks=0,Dx=0.5,Oy=-6](0,-6)(5,6){7cm}{5cm}
\pstScalePoints(1e3,1e0){}{}
\psaxes[xAxis=false,Dy=0.2,dy=1,ticks=none,axesstyle=none](5.9,0)(5.9,-6)(5.9,6)
\listplot[linecolor=blue,linewidth=2pt]{\vin}
\listplot[linecolor=black,linewidth=2pt]{\vout}
\rput{90}(5.9,0){Current[$\mu$A]}

\pstScalePoints(1e3,5e3){}{}
\listplot[linecolor=red,linewidth=2pt]{\idone}
\listplot[linecolor=green,linewidth=2pt]{\idtwo}

\end{psgraph}

\end{document}

在此处输入图片描述

相关内容