[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