如何使用 pst-plot 和对数 y 尺度忽略 y=0 的点的线?

如何使用 pst-plot 和对数 y 尺度忽略 y=0 的点的线?

我正在使用 pst-plot 以线性 x 和对数 y 尺度可视化数据集。应通过用实线连接所有点来绘制数据集。\pstScalePoints(1,1){}{log}只要数据集中没有 (x_i, y_i=0) 的点,这一切都可以正常工作。我想要实现的行为是根本不应该绘制这样的点,然后连接所有点的线在该点断开(也就是说,有连接 x_1 到 x_(i-1) 处的点的线,没有从 x_(i-1) 到 x_(i+1) 的线,并且还有从 x_(i+1) 到 x_n 的线)。例如,这是 MATLAB 中的默认行为。通过谷歌搜索,我找到了以下方法将 y=0 的点放在图形之外,但连接线仍然显示:\pstScalePoints(1,1){}{dup 0 eq { pop -1.e30 }{ log } ifelse}。谢谢你的帮助!

要求的最小示例:

\documentclass{article}
\pagestyle{empty}   

\usepackage{pstricks}
\usepackage{pst-plot}
\usepackage{pstricks-add}

\begin{document}

\begin{pspicture}[showgrid=false](0,0)(10,10) 
    \savedata{\mydata}[{{0,0.01},{1, 0.02},{2, 0.00},{3, 0.02},{4, 0.02}}]
    \pstScalePoints(1,1){}{dup 0 eq { pop -1.e30 }{ log } ifelse}
    %\pstScalePoints(1,1){}{ dup 0 eq { pop pop }{ log } ifelse}
    \begin{psgraph}(0,-3)(4,0){4.0cm}{4.0cm}%
        \listplot[linestyle=solid, showpoints=false]{\mydata}
    \end{psgraph}%
\end{pspicture}

\end{document}

答案1

尝试

\pstScalePoints(1,1){}{ dup 0 eq { pop pop }{ log } ifelse}

相关内容