我试图在一张图上绘制两个量,每个量都有自己的垂直轴。我已经完成了下面的 MWE,但仍有两个问题。
我可以让右侧轴具有与左侧轴相同的线条样式吗(我可能可以弄虚作假,
\psline
但我想知道是否有“正确”的方法)我可以让右侧垂直轴具有像左侧一样的轴标签,但“当前 [A]”(不带引号)位于轴的垂直位置的中心和
0.3in
轴线的右侧。
下面代码的输出如下
我没有提供“真实”数据。查看给出的数据时,人们可能会想知道为什么我需要两个垂直轴。我打算绘制的两个数据集具有相差很大的峰值幅度和不同的单位,但在时间上相关(x 轴),因此我发现以这种方式绘制它们是可取的。
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{pstricks,pst-plot,pstricks-add}
\begin{document}
\begin{pspicture}(1,1)
\readdata{\voltage}{capv.txt}
\readdata{\current}{capi.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 6,yticksize=0 20,subticks=0,ylabelFactor=,Dx=5,dy=1,Dy=1,Oy=-3](0,-3)(20,3){6cm}{3cm}
\pstScalePoints(1e4,1e0){}{}
\listplot[linecolor=blue,linewidth=1pt,showpoints=false]{\voltage}
\psaxes[axesstyle=axes,yticksize=0 20,ylabelFactor=,dy=1\psyunit,Dy=1,ylabelPos=right, xAxis=false, yAxis=true, Oy=-3](0,-3)(20,3)
\pstScalePoints(1e4,1e0){}{}
\listplot[linecolor=red,linewidth=1pt,showpoints=false]{\current}
\end{psgraph}
\end{pspicture}
\end{document}
答案1
我不太明白你所说的线条样式是什么意思。不过这里有一个更好的右侧标签设置解决方案:
\documentclass[a4paper,10pt]{article}
\usepackage{pstricks,pst-plot,pstricks-add}
\begin{document}
\begin{pspicture}(1,1)
\readdata{\voltage}{capv.txt}
\readdata{\current}{capi.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 6,yticksize=0 20,
subticks=0,Dx=5,Oy=-3](0,-3)(20,3){6cm}{3cm}
\pstScalePoints(1e4,1e0){}{}
\listplot[linecolor=blue,linewidth=1pt]{\voltage}
\multido{\iA=-3+1}{7}{\rput[r](21.75,\iA){$\iA$}}
\rput{90}(23,0){Current[A]}
\pstScalePoints(1e4,1e0){}{}
\listplot[linecolor=red,linewidth=1pt,xStart=1.e-8]{\current}
\end{psgraph}
\end{pspicture}
\end{document}