Hallo!
Diesmal hab ich glaub ich ein echt kompliziertes Problem...
Wie in diesem Thread beschrieben, versuche ich mit pstricks Histogramme zu erzeugen. Zunächst wollte ich die Daten, die den Histogrammen zu Grunde liegen, auch gleich in pstricks auswerten, das scheint aber nicht möglich zu sein???
Jdfs. habe ich die Daten nun mit [R] ausgewertet, und damit Textdateien erzeugt, die jeweils mehrere hundert Zeilen dieser Bauart enthalten
Beispiel - Daten
Code:
60 5633
70 4675
80 5199
90 5083
100 4352
110 4057
Nun zu meinem Problem:
Ich muss sehr viele Histogramme dieser Art erstellen, und jedes der Histogramme hat unterschiedliche x- und y-Werte. Da auf jeden Fall damit zu rechnen ist, dass die x- und y-Werte sehr groß sind, müsste ich stets mittels \psset{xunit=...,yunit=...} die Grafik entsprechend skalieren. Außerdem muss die Achsenbeschriftung angepasst werden.
Diese Vorgänge würde ich gerne automatisieren.
So sieht ein Histogramm-Skelett aus, das im Prinzip lauffähig ist:
Beispiel - Histogramm-Skelett
Code:
%
% Histogramm
%
\documentclass{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[naustrian]{babel}
% Daten erzeugen
\usepackage{filecontents}
\begin{filecontents}{a1.txt}
1 5
2 4
3 8
4 9
8 8
\end{filecontents}
% Daten wurden erzeugt
\usepackage{pstricks}
\usepackage{pstricks-add}
\begin{document}
\readdata{\data}{a1.txt}
\begin{pspicture}(-1,-1)(11,11)
\psset{xunit=1,yunit=1}
\psaxes[Dx=1,Dy=1](10,10)
\listplot[plotstyle=bar]{\data}
\end{pspicture}
\end{document}
Um den Vorgang zu automatisieren, würde ich aber so etwas brauchen:
Beispiel - Histogramm-Wunschvorstellung
Code:
%
% Histogramm
%
\documentclass{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[naustrian]{babel}
\usepackage{pstricks}
\usepackage{pstricks-add}
\begin{document}
\readdata{\data}{a1.txt}
\begin{pspicture}(-1,-1)(11,11)
% Variablen errechnen
\newcommand{\maxx}{ARGMAX-x-Werte aus data}
\newcommand{\maxy}{ARGMAX-y-Werte aus data}
\newcommand{\xunitvalue}{größter im pspicture definierter x-Wert/\maxx}
\newcommand{\yunitvalue}{größter im pspicture definierter y-Wert/\maxy}
\newcommand{\dxvalue}{\xunitvalue gerundet}
\newcommand{\dyvalue}{\yunitvalue gerundet}
% Variablen sind errechnet
\psset{xunit=\xunitvalue,yunit=\yunitvalue}
\psaxes[Dx=\dxvaue,Dy=\dyvalue](\maxx,\maxy)
\listplot[plotstyle=bar]{\data}
\end{pspicture}
\end{document}
Die rot markierten Werte müsste ich erst ausrechnen und ich weiß nicht wie das geht.
Ist das möglich das zu machen?
Lesezeichen