我正在尝试制作泰勒图来比较统计数据集。以下是作为此类图表的初步方法的代码。
\begin{pspicture}(-1,-1)(5.75,5.75)
\psaxes(0,0)(4,4)
\begin{psclip}{\pswedge(0,0){4}{0}{90}}
\multido{\ra=1+1}{4}{%
\pscircle[linewidth=1pt](2.6;0){\ra}%
\psplot[algebraic]{0}{\ra}{sqrt(\ra*\ra - x*x)}}
\multido{\rx=0.0+0.1}{10}{%
\pstVerb{/pen \rx\space 1 div ACOS def}
\psplot[linecolor=green]{0}{4}{x pen TAN mul}}
\end{psclip}
\multido{\ry=0.0+0.1}{10}{%
\rput{! \ry\space 1 div ACOS RadtoDeg}(! \ry\space 4 mul 16 \ry\space 4 mul
dup mul sub sqrt){\psPrintValue{\ry\space 1 div ACOS RadtoDeg}}}
\end{pspicture}
问题在于绘制绿线的第二个循环,给出:
请注意两条接近 45 度的绿线(应该只有一条)。斜率来自与 x 轴 1/10 等分相对应的角度。代码当然可以更轻松或更紧凑地编写,但我很想知道为什么此代码会产生这种异常或可能出现什么问题。
答案1
使用一个简单的\psline
方法:
\documentclass[pstricks]{standalone}
\usepackage{pst-plot,pst-math}
\usepackage{auto-pst-pdf}
\begin{document}
\begin{pspicture}(-1,-1)(5.75,5.75)
\psaxes(4,4)
\begin{psclip}{\pswedge(0,0){4}{0}{90}}
\multido{\ia=1+1}{4}{%
\pscircle[linewidth=1pt](2.6;0){\ia}%
\psplot[algebraic]{0}{\ia}{sqrt(\ia*\ia - x*x)}}
\multido{\rx=0.0+0.1}{10}{%
\psline[linecolor=green](!4 \rx\space ACOS RadtoDeg PtoC)
}
\end{psclip}
\multido{\ry=0.0+0.1}{10}{%
\rput{! \ry\space ACOS RadtoDeg}(! \ry\space 4 mul 16 \ry\space 4 mul
dup mul sub sqrt){\psPrintValue{\ry\space ACOS RadtoDeg}}}
\end{pspicture}
\end{document}
另一种解决方案:
\begin{pspicture}(-1,-1)(5.75,5.75)
\psaxes(4,4)
\begin{psclip}{\pswedge(0,0){4}{0}{90}}
\multido{\ia=1+1}{4}{%
\pscircle[linewidth=1pt](2.6;0){\ia}%
\psarc(0,0){\ia}{0}{90}
}
\multido{\rx=0.0+0.1}{10}{%
\psline[linecolor=green](!4 \rx\space ACOS RadtoDeg PtoC)
}
\end{psclip}
\multido{\ry=0.0+0.1}{10}{%
\rput{! \ry\space ACOS RadtoDeg}(!4.1 \ry\space ACOS RadtoDeg 1 sub PtoC){%
\psPrintValue{\ry\space ACOS RadtoDeg}}}
\end{pspicture}