[pstricks] logarithmic scale
Herbert Voss
Herbert.Voss at alumni.TU-Berlin.DE
Mon Jul 5 08:21:08 CEST 2004
jmpapy wrote:
>
> Hello,
>
> I plotted some data using pstricks in linear scale. Here are the code
> and the data:
[ ... ]
> Now I would want to plot the same data in decimal log scale (for the y
> axis).
> So I used \readdata and added
remember that \pst at def works only for \listplot
> \makeatletter
> \pst at def{ScalePoints}<%
> /y ED /x ED
> counttomark dup dup cvi eq not { exch pop } if
> /m exch def /n m 2 div cvi def
> n {
> y mul log m 1 roll % <-- log of y
this gives the wrong value, because y ist _not_ the
y-value, it is the scaling factor! The x y data records
are saved in the stack list
yunit xunit y x y x y x y x y x ....
this is the reason why you have to write
log y mul m 1 roll % <-- log of y
means: first the log, then multiply it with the yunit
I also did some modification to your code. Just playing
around with it. You can reverse the changes.
Herbert
\begin{filecontents}{sv1_2_5.dat}
0.1414 0.0052
0.2828 0.0217
0.4243 0.0480
0.5657 0.0890
0.7071 0.1375
0.8485 0.1906
0.9899 0.2663
1.1314 0.3580
1.2728 0.4644
1.4142 0.5801
1.5556 0.7033
1.6971 0.8899
1.8385 1.1143
1.9799 1.2593
2.1213 1.5692
2.2627 3.2331
2.4042 4.4097
2.5456 5.8186
2.6870 7.4441
2.8284 8.2287
\end{filecontents}
\documentclass[12pt,a4paper]{article}
\usepackage{pstricks}
\usepackage{pst-plot}
\usepackage{pstricks-add}
\makeatletter
\pst at def{ScalePoints}<%
/y ED /x ED % save the units
counttomark dup dup cvi eq not { exch pop } if
/m exch def /n m 2 div cvi def
n {
log y mul m 1 roll % <-- log of y-value
x mul m 1 roll
/m m 2 sub
def } repeat>
\makeatother
\begin{document}
\psset{xunit=3cm, yunit=4cm, xyLabel={\scriptsize\sffamily}}
\begin{pspicture}[](-0.5,-1)(3,1)
\psaxes[axesstyle=frame,Dx=0.5,ylogBase=10,Oy=-4](0,-3)(2.8284,1)
\rput(1.5,-3.2){Noise Standard Deviation}
\rput{90}(-0.4,-1){\small\sffamily RRMSE [\%]}
\readdata{\data}{sv1_2_5.dat}
\listplot[linewidth=0.5pt]{\data}
\end{pspicture}
\end{document}
--
http://TeXnik.de/
http://PSTricks.de/
ftp://ftp.dante.de/tex-archive/info/math/voss/Voss-Mathmode.pdf
http://www.dante.de/faq/de-tex-faq/
http://www.tex.ac.uk/cgi-bin/texfaq2html?introduction=yes
More information about the PSTricks
mailing list