Elgerton
26-02-2009, 11:50
Hallo,
ich möchte vier Graphen mit pstricks in einer subfigure-Umgebung plotten. Die Daten werden dabei aus Dateien ausgelesen. Das funktioniert auch soweit, allerdings hätte ich noch ein paar Fragen dazu und hoffe, dass Ihr mir helfen könnt.
Wenn ihr das unten angehängte Beispiel ausführt, dann werdet Ihr sehen, dass bei fast allen Plots die oberste Beschriftung bei der y-Achse fehlt. Wie bekomme ich die da hin?
Weiterhin ist der erste Plot (links oben) höher als der Plot rechts daneben. Wenn ich den Plotbereich der y-Achse im linken Plot auf 0.4 erweitere, dann sind sie ungefähr gleich groß. Warum wird die vorgegebene Höhe (3cm) nicht eingehalten?
Gibt es eine Möglichkeit, außer mit \rput einen Titel für die Plots zu bestimmen?
Kann man Anfang und Ende der x-Achsenwerte direct aus den eingelesenen Daten bekommen, so dass man Ox nicht manuell setzen muss?
Vielen Dank für Eure Mühe.
Hier ist nun das "Minimalbeispiel" (die Daten fürs plotten hängen als Attachment dran):
\documentclass[a4paper,12pt,headings=normal]{scrbook}
\usepackage{pstricks-add}
\usepackage{subfigure}
\begin{document}
\begin{figure}[ht]
\centering
\footnotesize
\readdata{\dataMag}{mag.txt}%
\readdata{\dataPha}{pha.txt}%
\readdata{\dataRe}{re.txt}%
\readdata{\dataIm}{im.txt}%
%\pstScalePoints(1,1){8 sub}{}
\psset{llx=-0.5cm,lly=-1cm, xAxisLabel={Frequenz / GHz}, xAxisLabelPos={c,-0.9cm}}
\subfigure
{
\psset{yAxisLabel={$|\mathrm{S}|$}, yAxisLabelPos={-0.5in,c}}
\psline[linecolor=red,linewidth=1.0pt](4.5,3.9)(5.5,3.9)
\rput(6.0,3.9){Set 1}
\psline[linecolor=blue,linestyle=dashed,linewidth=1.0pt](4.5,3.5)(5.5,3.5)
\rput(6.0,3.5){Set 2}
\psgraph[axesstyle=frame,Dx=0.5,Dy=0.1,Ox=8,Oy=0,subticks=1](8,0)(10,0.3){6cm}{3cm}%
\listplot[linecolor=red,linewidth=1.0pt,plotNo=1,plotNoMax=2]{\dataMag}
\listplot[linecolor=blue,linestyle=dashed,linewidth=1.0pt,pl otNo=2,plotNoMax=2]{\dataMag}
\endpsgraph
}
\hfill
\subfigure
{
\psset{yAxisLabel={$\arg(\mathrm{S})$ / degree}, yAxisLabelPos={-0.5in,c}}
\psgraph[axesstyle=frame,Dx=0.5,Dy=50,Ox=8,Oy=-100,subticks=1](8,-100)(10,100){6cm}{3cm}%
\listplot[linecolor=red,linewidth=1.0pt,plotNo=1,plotNoMax=2]{\dataPha}
\listplot[linecolor=blue,linestyle=dashed,linewidth=1.0pt,pl otNo=2,plotNoMax=2]{\dataPha}
\endpsgraph
}
\subfigure
{
\psset{yAxisLabel={$\Re(\mathrm{S})$}, yAxisLabelPos={-0.5in,c}}
\psgraph[axesstyle=frame,Dx=0.5,Dy=0.1,Ox=8,Oy=-0.1,subticks=1](8,-0.1)(10,0.3){6cm}{3cm}%
\listplot[linecolor=red,linewidth=1.0pt,plotNo=1,plotNoMax=2]{\dataRe}
\listplot[linecolor=blue,linestyle=dashed,linewidth=1.0pt,pl otNo=2,plotNoMax=2]{\dataRe}
\endpsgraph
}
\hfill
\subfigure
{
\psset{yAxisLabel={$\Im(\mathrm{S})$}, yAxisLabelPos={-0.5in,c}}
\psgraph[axesstyle=frame,Dx=0.5,Dy=0.1,Ox=8,Oy=-0.1,subticks=1](8,-0.1)(10,0.3){6cm}{3cm}%
\listplot[linecolor=red,linewidth=1.0pt,plotNo=1,plotNoMax=2]{\dataIm}
\listplot[linecolor=blue,linestyle=dashed,linewidth=1.0pt,pl otNo=2,plotNoMax=2]{\dataIm}
\endpsgraph
}
\caption{Beispiel}
\end{figure}
\end{document}
ich möchte vier Graphen mit pstricks in einer subfigure-Umgebung plotten. Die Daten werden dabei aus Dateien ausgelesen. Das funktioniert auch soweit, allerdings hätte ich noch ein paar Fragen dazu und hoffe, dass Ihr mir helfen könnt.
Wenn ihr das unten angehängte Beispiel ausführt, dann werdet Ihr sehen, dass bei fast allen Plots die oberste Beschriftung bei der y-Achse fehlt. Wie bekomme ich die da hin?
Weiterhin ist der erste Plot (links oben) höher als der Plot rechts daneben. Wenn ich den Plotbereich der y-Achse im linken Plot auf 0.4 erweitere, dann sind sie ungefähr gleich groß. Warum wird die vorgegebene Höhe (3cm) nicht eingehalten?
Gibt es eine Möglichkeit, außer mit \rput einen Titel für die Plots zu bestimmen?
Kann man Anfang und Ende der x-Achsenwerte direct aus den eingelesenen Daten bekommen, so dass man Ox nicht manuell setzen muss?
Vielen Dank für Eure Mühe.
Hier ist nun das "Minimalbeispiel" (die Daten fürs plotten hängen als Attachment dran):
\documentclass[a4paper,12pt,headings=normal]{scrbook}
\usepackage{pstricks-add}
\usepackage{subfigure}
\begin{document}
\begin{figure}[ht]
\centering
\footnotesize
\readdata{\dataMag}{mag.txt}%
\readdata{\dataPha}{pha.txt}%
\readdata{\dataRe}{re.txt}%
\readdata{\dataIm}{im.txt}%
%\pstScalePoints(1,1){8 sub}{}
\psset{llx=-0.5cm,lly=-1cm, xAxisLabel={Frequenz / GHz}, xAxisLabelPos={c,-0.9cm}}
\subfigure
{
\psset{yAxisLabel={$|\mathrm{S}|$}, yAxisLabelPos={-0.5in,c}}
\psline[linecolor=red,linewidth=1.0pt](4.5,3.9)(5.5,3.9)
\rput(6.0,3.9){Set 1}
\psline[linecolor=blue,linestyle=dashed,linewidth=1.0pt](4.5,3.5)(5.5,3.5)
\rput(6.0,3.5){Set 2}
\psgraph[axesstyle=frame,Dx=0.5,Dy=0.1,Ox=8,Oy=0,subticks=1](8,0)(10,0.3){6cm}{3cm}%
\listplot[linecolor=red,linewidth=1.0pt,plotNo=1,plotNoMax=2]{\dataMag}
\listplot[linecolor=blue,linestyle=dashed,linewidth=1.0pt,pl otNo=2,plotNoMax=2]{\dataMag}
\endpsgraph
}
\hfill
\subfigure
{
\psset{yAxisLabel={$\arg(\mathrm{S})$ / degree}, yAxisLabelPos={-0.5in,c}}
\psgraph[axesstyle=frame,Dx=0.5,Dy=50,Ox=8,Oy=-100,subticks=1](8,-100)(10,100){6cm}{3cm}%
\listplot[linecolor=red,linewidth=1.0pt,plotNo=1,plotNoMax=2]{\dataPha}
\listplot[linecolor=blue,linestyle=dashed,linewidth=1.0pt,pl otNo=2,plotNoMax=2]{\dataPha}
\endpsgraph
}
\subfigure
{
\psset{yAxisLabel={$\Re(\mathrm{S})$}, yAxisLabelPos={-0.5in,c}}
\psgraph[axesstyle=frame,Dx=0.5,Dy=0.1,Ox=8,Oy=-0.1,subticks=1](8,-0.1)(10,0.3){6cm}{3cm}%
\listplot[linecolor=red,linewidth=1.0pt,plotNo=1,plotNoMax=2]{\dataRe}
\listplot[linecolor=blue,linestyle=dashed,linewidth=1.0pt,pl otNo=2,plotNoMax=2]{\dataRe}
\endpsgraph
}
\hfill
\subfigure
{
\psset{yAxisLabel={$\Im(\mathrm{S})$}, yAxisLabelPos={-0.5in,c}}
\psgraph[axesstyle=frame,Dx=0.5,Dy=0.1,Ox=8,Oy=-0.1,subticks=1](8,-0.1)(10,0.3){6cm}{3cm}%
\listplot[linecolor=red,linewidth=1.0pt,plotNo=1,plotNoMax=2]{\dataIm}
\listplot[linecolor=blue,linestyle=dashed,linewidth=1.0pt,pl otNo=2,plotNoMax=2]{\dataIm}
\endpsgraph
}
\caption{Beispiel}
\end{figure}
\end{document}