这个问题与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}