使用curveplotstyle

使用curveplotstyle

第一个代码:

\documentclass[pstricks]{standalone}
\usepackage{pst-plot}
\def\m{1/((x-1)^2)^(1/3)}

\begin{document}    
\begin{pspicture}(-1,-1)(3.5,3.5)
 \psaxes[labelFontSize=\scriptstyle]{->}(0,0)(3,3)[$x$,-90][$y$,0]
 \psplot[ algebraic,
         % plotstyle=curve,
            plotpoints=1000, <<-- notice
            yMaxValue=3,
            linewidth=1.5pt,
            linecolor=red]{0}{3}{\m}
\psline[linestyle=dashed](1,0)(1,3)
\end{pspicture} 
\end{document}

在此处输入图片描述

第二段代码:

\documentclass[pstricks]{standalone}
\usepackage{pst-plot}
\def\m{1/((x-1)^2)^(1/3)}

\begin{document}    
\begin{pspicture}(-1,-1)(3.5,3.5)
\psaxes[labelFontSize=\scriptstyle]{->}(0,0)(3,3)[$x$,-90][$y$,0]
\psplot[ algebraic,
         plotstyle=curve,
         %plotpoints=1000,
          yMaxValue=3,
         linewidth=1.5pt,
         linecolor=red]{0}{3}{\m}
\psline[linestyle=dashed](1,0)(1,3)
\end{pspicture} 
\end{document}

编译的结果令人沮丧。

  1. 它们之间有什么区别?
  2. 你能修复图片让它变得一样吗?

答案1

最好的解释方式是展示动画,对吗?

使用curveplotstyle

至少需要3个点。当N=2没有图表时。

\documentclass[12pt,pstricks]{standalone}
\usepackage{pst-plot}
\def\m{1/((x-1)^2)^(1/3)}
\def\xl{3 -1.5 exp neg 1 add}
\def\xr{3 -1.5 exp 1 add}
\begin{document}
\multido{\i=2+1}{20}{%
\begin{pspicture}[algebraic,showpoints,plotstyle=curve](-1,-1)(3.5,4)
    \psaxes[labelFontSize=\scriptstyle]{->}(0,0)(3,3.5)[$x$,-90][$y$,0]
    \psplot[linecolor=red,plotpoints=\i]{0}{\xl}{\m}
    \psplot[linecolor=red,plotpoints=\i]{\xr}{3}{\m}
    \psline[linestyle=dashed](1,0)(1,3)
    \rput[t](2,3){$N=\i$}
\end{pspicture}} 
\end{document}

在此处输入图片描述

使用lineplotstyle

至少需要2分。

\documentclass[12pt,pstricks]{standalone}
\usepackage{pst-plot}
\def\m{1/((x-1)^2)^(1/3)}
\def\xl{3 -1.5 exp neg 1 add}
\def\xr{3 -1.5 exp 1 add}
\begin{document}
\multido{\i=2+1}{20}{%
\begin{pspicture}[algebraic,showpoints,plotstyle=line](-1,-1)(3.5,4)
    \psaxes[labelFontSize=\scriptstyle]{->}(0,0)(3,3.5)[$x$,-90][$y$,0]
    \psplot[linecolor=red,plotpoints=\i]{0}{\xl}{\m}
    \psplot[linecolor=red,plotpoints=\i]{\xr}{3}{\m}
    \psline[linestyle=dashed](1,0)(1,3)
    \rput[t](2,3){$N=\i$}
\end{pspicture}} 
\end{document}

在此处输入图片描述

最终输出

\documentclass[12pt,pstricks]{standalone}
\usepackage{pst-plot}
\def\m{1/((x-1)^2)^(1/3)}
\def\xl{3 -1.5 exp neg 1 add}
\def\xr{3 -1.5 exp 1 add}
\begin{document}
\begin{pspicture}[algebraic](-.5,-.6)(4,4)
    \psaxes[labelFontSize=\scriptstyle]{->}(0,0)(3.5,3.5)[$x$,0][$y$,90]
    \psplot[linecolor=red]{0}{\xl}{\m}
    \psplot[linecolor=red]{\xr}{3}{\m}
    \psline[linestyle=dashed](1,0)(1,3)
\end{pspicture}
\end{document}

在此处输入图片描述

我的最佳实践

  • \psplot当单个图中存在不连续性时,将图形拆分为两个或多个调用。
  • 盲目增加plotpoints会浪费更多的存储空间,因为 PDF(或 SVG)的大小也会增加。
  • plotstyle大多数时候您不需要改变。

解释

  • \def\xl{3 -1.5 exp neg 1 add}是 的值,xl<1使得f(xl)=3
  • \def\xr{3 -1.5 exp 1 add}是 的值,xr>1使得f(xr)=3

  • plotstyle表示用于连接点的曲线类型。

  • plotpoints表示绘制曲线所用的点的数量。

答案2

\documentclass[pstricks]{standalone}
\usepackage{pst-plot}
\begin{document}    

\begin{pspicture}(-1,-1)(3.5,3.5)
\psaxes[labelFontSize=\scriptstyle]{->}(0,0)(3,3)[$x$,-90][$y$,0]
\psclip{\psframe[linestyle=none](3,3)}
  \psplot[ algebraic,linewidth=1.5pt,linecolor=red]{0}{3}{1/((x-1)^2)^(1/3)}
\endpsclip
\psline[linestyle=dashed](1,0)(1,3)
\end{pspicture} 

\end{document}

在此处输入图片描述

相关内容