如何使用 pscustom 仅填充用 .dat 文件绘制的曲线的一部分?

如何使用 pscustom 仅填充用 .dat 文件绘制的曲线的一部分?

我知道如何使用pscustom来填充两条曲线之间的区域,但是我怎样才能仅填充用.dat 文件绘制的曲线部分下方的矩形?

我所做的是生成两个 .dat 文件,一个带有我的曲线,另一个带有 x 轴上的一条线,我称之为groundData

\readdata{\data}{data.dat}
\readdata{\groundData}{groundData.dat}


\pscustom[fillstyle=solid,fillcolor=blue,linestyle=none]{
\listplot[plotNo=2,plotNoMax=6]{\data}
\listplot[ChangeOrder]{\groundData}}
}

由于data.dat文件包含多条曲线的信息,因此plotNoplotNoMax选项有助于选择正确的曲线。当我这样做时,我得到的不是曲线部分(x 轴上线段上方的部分)下方的矩形,而是两个顶点相接的三角形,就好像的最后一个点data.dat连接到的第一个点一样groundData.dat。该changeorder选项应该可以解决这个问题,但它似乎与没有它一样有效果。

你能帮助我吗?谢谢。

答案1

您可以使用一些\listplot参数:

\listfiles
\documentclass{article}
\usepackage{pst-plot}
\begin{document}
\readdata\data{data.data}
\psset{xunit=12.5cm,yunit=0.2mm}
\begin{pspicture}(-0.080,-30)(1,270)
\pstScalePoints(1,1){1000 div}{1000 div}
\psaxes[Dx=200,dx=2.5cm,Dy=100,ticksize=0 5pt,tickstyle=inner,
    subticks=10,ylabelFactor=\cdot10^3,dy=2cm](0,0)(1,250)
\pscustom[fillstyle=solid,fillcolor=blue,opacity=0.4,linestyle=none,linecap=2]{%
  \psline(0.2,0)(0.2,10)% 10 is only a guess
  \listplot[xStart=200,xEnd=800]{\data}
  \psline(0.8,10)(0.8,0)
}
\listplot[linewidth=1pt,linecolor=blue]{\data}
\end{pspicture} 

\end{document}

在此处输入图片描述

linecap=2(0.2,10) 到数据值画一条直线。右侧从数据端到 (0.8,10) 也画一条直线

数据文件是 TeX 安装的一部分。它使用 0..994 作为 x 值,0..256500 作为 y 值。应简单地将其应用于您的数据区域。

相关内容