我有一个 .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}