如何在 pstricks 中填充 listplot 和 psline 之间的区域?

如何在 pstricks 中填充 listplot 和 psline 之间的区域?

我有一个 .txt 文件,里面有我用 lisplot 绘制曲线的数据,我需要填充这条曲线和 pstrick 中的 psline 之间的空间。有人知道怎么做吗?

答案1

您无需定义数据宏,就可以\readdata从外部文件读取数据。\pscustom始终从 (0,0) 开始:

\documentclass{article}
\usepackage{pst-plot}
\def\data{
1505  371     40.6
1510  1187   38.76
1515  2383   41.16
1520  3376   42.06
1525  3510   50.39
1530  4548   56.78
1535  6198   48.95
1540  10136  58.20
1545  15090  59.49
1550  20599  69.05
1555  30465  71.02
1560  38464  79.09
1565  49672  92.38
1570  62803  93.84
1575  74710   103.71
1580  91962   102.77
1585  121337  111.35
1590  145170  113.97
1595  180355  114.08
1600  214784  137.23
1605  239187  142.20
1610  270592  130.57
1615  295120  127.86
1620  325232  129.94
1625  352243  124.21
1630  377198  136.77
1635  394309  126.81
1640  410624  121.46
1645  424388  132.91
1650  436159  143.22 }

\begin{document}
 \psset{llx=-1cm,lly=-1cm, xAxisLabel=Year,yAxisLabel=Whatever,%
  xAxisLabelPos={c,-0.4in},yAxisLabelPos={-0.6in,c}}
 \psgraph[axesstyle=frame,Dx=20,Ox=1505,subticks=2,Dy=10,
  ylabelFontSize=\red\scriptstyle,
  xlabelFontSize=\scriptstyle,ylabelFactor=\cdot 10^4](0,0)(160,50){4in}{2in}%
 \pstScalePoints(1,1){1505 sub}{10000 div}
 \pscustom[linestyle=none,fillcolor=red!30,fillstyle=solid]{%
   \listplot[plotNoMax=2,plotNo=1]{\data}
   \psline(145,0)
  }
 \listplot[linecolor=red,linewidth=2pt,plotNoMax=2,plotNo=1]{\data}

 \pstScalePoints(1,1){1505 sub}{3 div}
 \pscustom[linestyle=none,fillcolor=blue!50,fillstyle=solid,opacity=0.4]{%
   \listplot[plotNoMax=2,plotNo=2]{\data}
   \psline(145,0)(0,0)
 }
 \listplot[linecolor=blue,linewidth=2pt,plotNoMax=2,plotNo=2]{\data}
 \psaxes[xAxis=false,Dy=30,dy=10,labelFontSize=\scriptstyle\blue,
    ylabelPos=r,ylabelFactor={}](0,0)(0,50)
 \endpsgraph 

\end{document}

在此处输入图片描述

相关内容