PSTricks: 数据图

PSTricks: 数据图

请考虑以下示例:

\documentclass{article}
\usepackage{pst-plot}

\begin{document}

\savedata{\data}[{1999,6276},{2000,6827},{2001,7783},{2002,9819}]
\psset{xAxisLabel={Year},yAxisLabel={Ocapi}}
\begin{psgraph}[Ox=1999,xlabelOffset=0.5,Dy=2000]{->}(1999,0)(2004,13000){13.5cm}{8.1cm}
\dataplot[plotstyle=dots,dotstyle=o,fillcolor=red]{\data}
\end{psgraph}

\end{document}

我尝试重新使用这个答案来自 Herbert,但无法正常工作。错误是

! Dimension too large.
<recently read> \pst@xunit 

l.8 ...000]{->}(1999,0)(2004,13000){13.5cm}{8.1cm}

如果我能得到解决方案以及它不起作用的原因的解释,我将非常感激。

答案1

使用任何编译器运行:

\documentclass{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
    axis lines=left, enlarge x limits=true,
    /pgf/number format/1000 sep={},
    xtick={1999,...,2002},
    ymin=0
]
\addplot +[only marks] table{
1999 6276
2000 6827
2001 7783
2002 9819
};
\end{axis}
\end{tikzpicture}

\end{document}

(向赫伯特眨眼并点头)


使用pst-plot,您需要手动移动坐标,然后才能绘制它们。您可以通过添加

\pstScalePoints(1,1){1999 sub}{}

这会从所有 x 坐标中减去 1999。然后,如果您将绘图限制调整为从 x=0 到 5 的范围,并使用\listplot而不是\dataplot,则会得到以下结果:

\documentclass{article}
\usepackage{pst-plot}

\begin{document}

\savedata{\data}[{1999,6276},{2000,6827},{2001,7783},{2002,9819}]
\pstScalePoints(1,1){1999 sub}{}
\psset{xAxisLabel={Year},yAxisLabel={Ocapi}}
\begin{psgraph}[Ox=1999,xlabelOffset=0.5,Dy=2000]{->}(0,0)(5,13000){13.5cm}{8.1cm}
\listplot[plotstyle=dots,dotstyle=o,fillcolor=red]{\data}
\end{psgraph}

\end{document}

答案2

\documentclass{article}
\usepackage{pst-plot}

\begin{document}

\savedata{\data}[{1999,6276},{2000,6827},{2001,7783},{2002,9819}]
\psset{xAxisLabel=Year,yAxisLabel=Ocapi}
\begin{psgraph}[Ox=1999,xlabelOffset=0.5,Dy=2000]{->}(0,0)(5,13000){10cm}{6cm}
\pstScalePoints(1,1){ 1999 sub }{}
\listplot[showpoints,linecolor=red,linewidth=1pt]{\data}
\end{psgraph}

\end{document}

相关内容