我正在尝试绘制一个分段函数,其中一个分量使用负指数。但是,pst-plots 似乎无法理解负指数。我尝试过用几种不同的方式表达它,但它要么什么都不显示,要么绘制出线性的东西。
\documentclass{article}
\usepackage{pst-plot}
\psset
{
xunit=.8cm,
yunit=1cm,
}
\def\L{-.2}
\def\R{5}
\def\B{-0.2}
\def\T{3.2}
\def\dL{2pt}
\def\dR{12pt}
\def\dB{2pt}
\def\dT{18pt}
\begin{document}
\begin{figure}[ht]
\centering
\begin{pspicture}[showgrid=false]
(\dimexpr\L\psxunit-\dL\relax,\dimexpr\B\psyunit-\dB\relax)
(\dimexpr\R\psxunit+\dR\relax,\dimexpr\T\psyunit+\dT\relax)
\psaxes[linecolor=lightgray]{->}(0,0)(\L,\B)(\R,\T)[$x$,0][$f(x)$,90]
\psset{algebraic,linewidth=1.5pt,linecolor=red,plotpoints=2}
\psplot[arrows=-*]{\L}{1}{0}
\psplot[arrows=o-]{1}{\R}{3x^(-4)}
\end{pspicture}
\end{figure}
\end{document}
我愿意尝试其他绘图方法,但是我更喜欢 pst-plots 的外观而不是其他包。
编辑:
我正在尝试绘制 f(x) = 3*x^{-4} 在 (1,\infty) 上的图形
答案1
使用选项plotpoints=2
,您可以希望只有一行。默认值为 50!我建议您plotstyle=curve
改为设置,当然还要添加*
已经指出的选项。该showgrid=false
选项是无用的,因为它是默认值。您可以通过将pdf
选项添加到文档类来编译:它将被传递给pstricks
将要启动的类epstopdf
(前提是--shell-escape
启用了该选项),并且生成的 .pdf 图像将被裁剪。
\documentclass[pdf]{article}
\usepackage{pst-plot}
\psset
{
xunit=.8cm,
yunit=1cm,
}
\def\L{-.2}
\def\R{5}
\def\B{-0.2}
\def\T{3.2}
\def\dL{2pt}
\def\dR{12pt}
\def\dB{2pt}
\def\dT{18pt}
\begin{document}
\begin{figure}[!ht]
\centering
\begin{pspicture}[showgrid=false]
(\dimexpr\L\psxunit-\dL\relax,\dimexpr\B\psyunit-\dB\relax)
(\dimexpr\R\psxunit+\dR\relax,\dimexpr\T\psyunit+\dT\relax)
\psaxes[linecolor=lightgray]{->}(0,0)(\L,\B)(\R,\T)[$x$,0][$f(x)$,90]
\psset{algebraic,linewidth=1.5pt,linecolor=red,plotstyle = curve}
\psplot[arrows=-*]{\L}{1}{0}
\psplot[arrows=o-]{1}{\R}{3*x^(-4)}
\end{pspicture}
\end{figure}
\end{document}
答案2
您的职责是3*x^(-x)
。您忘记了*
。
\documentclass{article}
\usepackage{pst-plot}
\psset{xunit=.8cm,yunit=1cm}
\def\f(x){3*x^(-4)}
\begin{document}
\begin{pspicture}(-0.5,-0.5)(6,3.5)
\psaxes[linecolor=lightgray]{->}(0,0)(-0.2,-0.2)(5.5,3.2)[$x$,0][$f(x)$,90]
\psset{algebraic,linewidth=1.5pt,linecolor=red}
\psplot[arrows=*-,plotpoints=100]{1}{5}{3*x^(-4)}
\psplot[arrows=-o,plotpoints=2]{-0.2}{1}{0}
\end{pspicture}
\end{document}
答案3
这只是我的另一个新模板。
\documentclass[pstricks,border=0bp,12pt,dvipsnames]{standalone}
\usepackage{pst-plot}
\usepackage[nomessages]{fp}
\FPset\XMin{-1}
\FPset\XMax{4}
\FPset\YMin{0}
\FPset\YMax{3}
\FPset\DeltaX{1}
\FPset\DeltaY{1}
\FPeval\Left{XMin-DeltaX/2}
\FPeval\Right{XMax+DeltaX/2}
\FPeval\Bottom{YMin-DeltaY/4}
\FPeval\Top{YMax+DeltaY/4}
\newlength\Width\Width=10cm
\newlength\Height\Height=6cm
\newlength\urx\urx=15pt
\newlength\ury\ury=15pt
\newlength\llx\llx=-5pt
\newlength\lly\lly=-5pt
\psset
{
algebraic,
urx=\urx,
ury=\ury,
llx=\llx,
lly=\lly,
plotpoints=80,
xAxisLabel=$x$,
yAxisLabel=$y$,
tickcolor=gray,
ticksize=0 -4pt,
labelFontSize=\scriptstyle,
}
\def\f{0}
\def\g{1}
\def\h{3/x^4}
\usepackage{amsmath}
\begin{document}
\begin{psgraph}[dx=\DeltaX,dy=\DeltaY,linecolor=gray]{->}(0,0)(\Left,\Bottom)(\Right,\Top){\dimexpr\Width-\urx+\llx}{\dimexpr\Height-\ury+\lly}
\psset{linecolor=NavyBlue,linewidth=2\pslinewidth}
\psplot[arrows=-o]{\XMin}{1}{\f}
\psplot[arrows=*-*]{1}{1}{\g}
\psplot[arrows=o-]{1}{\XMax}{\h}
\rput[tr](\Right,\Top){$f(x)=\begin{cases}0 &;\, x<1\\ 1 &;\, x=1\\ 3/x^4 &;\, x>1\end{cases}$}
\end{psgraph}
\end{document}
笔记
不幸的是,箭头-o
或是o-
一个函数plotpoints
。对于任何值,结果都不能保证是正确的plotponts
。换句话说,更高的值plotpoints
并不能保证你会得到正确的箭头。