第一个代码:
\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
最好的解释方式是展示动画,对吗?
使用curve
plotstyle
至少需要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}
使用line
plotstyle
至少需要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}