[pstricks] [Fwd: Re: empirische Dichte mit pstricks Plotten]
Herbert Voss
Herbert.Voss at FU-Berlin.DE
Tue Feb 12 19:47:29 CET 2008
An example of a density plot. The matrix holds the density
values depending to row and column
output is here: http://perce.de/temp/dichte.pdf
Herbert
-------- Original-Nachricht --------
Betreff: Re: empirische Dichte mit pstricks Plotten
Datum: Tue, 12 Feb 2008 19:34:30 +0100
Von: Herbert Voss <herbert49 at googlemail.com>
Newsgruppen: de.comp.text.tex
Referenzen: <fos21d$8f5$1 at sagnix.uni-muenster.de>
<fosar0$sov$02$1 at news.t-online.com>
<fosc6k$ahc$1 at sagnix.uni-muenster.de>
<fosecu$3q9$02$3 at news.t-online.com> <fosg83$doj$1 at sagnix.uni-muenster.de>
Jens Schniedmann schrieb:
>> also f(1,1)=5 oder?
>
> ja, genau so ist es gemeint!
Aufruf mit {Zeilen}{Spalten}{Datei}
Deine Datendatei muss mit "/p [" anfangen und mit "]def"
aufhören., Dazwischen ist es egal.
Ergebnis: http://perce.de/temp/dichte.pdf
Herbert
\listfiles
\documentclass{article}
\begin{filecontents}{dichte.ps}
/p[ % p _muss_ der Name sein
5 1 0 4 1 3 0 3 2 7
2 0 2 0 0 1 1 0 0 0
1 0 0 0 0 0 0 2 0 0
1 1 1 0 1 0 1 0 0 0
4 0 0 0 0 2 0 0 0 0
2 1 2 1 3 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
2 1 2 0 0 0 0 0 0 0
5 5 0 0 0 0 0 0 0 0
29 0 0 0 0 0 0 0 0 0
] def
\end{filecontents}
\makeatletter
\def\psDichtePlot{\pst at object{psDichtePlot}}
\def\psDichtePlot at i#1#2#3{%
\pst at killglue
\begingroup
\begin at SpecialObj%
\addto at pscode{
\psk at dotsize
\@nameuse{psds@\psk at dotstyle} %
(#3) run % load the data file
/n 0 def % index for element
1 1 #1 { % the y loop (outer one)
/y ED % save y
1 1 #2 { % the x loop (inner one)
/x ED % save x
x y 0 tx at 3DPlotDict begin Conv3D2D end
\pst at number\psyunit mul exch
\pst at number\psxunit mul exch
moveto
p n get % get value from matrix
/z ED
x y z
tx at 3DPlotDict begin Conv3D2D end
\pst at number\psyunit mul exch
\pst at number\psxunit mul exch
2 copy lineto Dot
\pst at number\pslinewidth SLW
\pst at usecolor\pslinecolor
stroke
/n n 1 add def
} for
} for
}%
\end at SpecialObj%
\endgroup%
\ignorespaces%
}
\makeatother
\begin{document}
\psset{unit=0.5}
\begin{pspicture}(-1,-1)(10,15)
\pstThreeDCoor[Alpha=30,xMax=10,yMax=10,zMax=20]
\psDichtePlot{10}{10}{dichte.ps}
\end{pspicture}
\end{document}
More information about the PSTricks
mailing list