![]() |
[LaTeX: pstricks] Probleme mit zu großer Dimensionsdifferenz
Hi,
ich muss ein Geschwindigkeits-Zeit-Diagramm mithilfe von pstricks mit LaTeX zeichnen. Es gibt dabei ein Problem: Die Geschwindigkeit wird in km/h angegeben, die Zeit logischerweise in h. Daher gibt es bei den beiden Achsen zwei komplett unterschiedliche Dimensionen. Auf der Zeitachse findet man 0,00x/0,0x und auf der Geschwindigkeitsachse vergleichsweise riesige 80. Da beschwert sich dummerweise pstricks enorm:
Code:
In Umbruch der extra umgebrochenen Zeile gibt es einen Arithmetic overflow. Was kann man dagegen tun ? Wenn ich die 7cm und 4cm auf sagen wir mal 1cm stelle, funktioniert es. Allerdings ist der Graph dann zu klein, die Werte 7cm und 4cm dürfen in dem Sinne nicht verändert werden. Die anderen Werte die überall auftauchen (0.002 zum Beispiel) sind also so klein, dass der Graph ansonsten wohl zu groß wäre.
\begin{pspicture}(-1,-1)(8,5)
\psset{xAxisLabel =$\frac{t}{h}$,yAxisLabel =$\frac{v}{\frac{km}{h}}$} \begin{psgraph}[arrows=->,Dx=0.002,Dy=10](0,0)(0,0)(0.019,89) {7cm}{4cm} % Arithmetic overflow. \psline[linecolor=blue](0,0)(0.010,60)(0.010,60)(0.018,60) \end{psgraph} \end{pspicture} Da ich in diesem Forum noch keine Fragen zu pstricks gesehen habe, hier eine kleine Erklärung:
Code:
Hier wird die Größe des Bildes bestimmt: X, Y bis X, Y (der Graph befindet sich sozusagen in einer Box, einem pspicture).
\begin{pspicture}(-1,-1)(8,5)
Code:
Die Achsenbeschriftungen werden gesetzt.
\psset{xAxisLabel =$\frac{t}{h}$,yAxisLabel =$\frac{v}{\frac{km}{h}}$}
Code:
arrow weist den Pfeil zu, Dx/y das Intervall der X-/Y-Achse (bei 5, ist jeder Strich an der Achse eine Zahl basierend auf 5 --> 5,10,15,20 usw.), xOrig/yOrig, xMin/yMin, xMax/yMax, Breite des Graphen in cm, Höhe des Graphen in cm.
\begin{psgraph}[arrows=->,Dx=0.002,Dy=10](0,0)(0,0)(0.019,89){7cm}{4cm}
Das Problem ist ein logisches Problem, es hat nicht unbedingt was mit pstricks zu tun, sondern mit einem Denkfehler, den ich irgendwo drinnen habe. Ich habe schon tagelang gesucht, aber bin zu keiner Lösung gekommen. Ich weiß auch langsam nicht mehr, nach was ich überhaupt suchen soll, auch Begriffe wie pstricks skalieren usw. bringen nichts brauchbares. Die Lösung wäre denke ich, den Graphen hochzuskalieren, ich weiß aber nicht wie. Das hochskalieren des pspicture scheint auch so ohne weiteres nichts zu bringen. Falls ihr eine Lösungsidee habt, die eventuell darin besteht, die Werte in andere Einheiten zu verpacken (was in meinen Augen eben leider nicht geht, die Zahlen bleiben immer in verschiedenen Dimensionen) oder anderes, nur her damit. |
Re: [LaTeX: pstricks] Probleme mit zu großer Dimensionsdiffe
Hier mal ein vollständigeres Beispiel..
Code:
Warum muss dein X-Schritt so klein sein? Da kann man doch nichts mehr erkennen. Reicht da nicht Dx=0.01?
\documentclass{article}
\usepackage{german} \usepackage[latin1]{inputenc} \usepackage{pstricks-add} \begin{document} \thispagestyle{empty} \begin{pspicture}(4, -1)(8, 15) \psset{xAxisLabel=$\frac{t}{h}$, yAxisLabel=$\frac{v}{\frac{km}{h}}$} \begin{psgraph}[arrows=->, Dx=0.01, Dy=10](0, 0)(0, 0)(0.11, 89){8cm}{10cm} \psline[linecolor=blue](0, 0)(0.010, 60)(0.010, 60)(0.018, 60) \end{psgraph} \end{pspicture} \end{document} Edit: oder du gehst auf v[m/s] und t[s].
Code:
Wobei ich solche Diagramme nur in drei zusammenhängenden Darstellungen kenne.
\begin{pspicture}(4,-1)(8,15)
\psset{xAxisLabel=$t [s]$, yAxisLabel=$v [\frac{m}{s}]$} \begin{psgraph}[arrows=->, Dx=1, Dy=10](0, 0)(0, 0)(10, 89){8cm}{10cm} \psline[linecolor=blue](0, 0)(1, 60)(1, 60)(2, 60) \end{psgraph} \end{pspicture} 1.: Y = a[m/s²], X = t[s] Beschleunigung 2.: Y = v[m/s], X = t[s] Geschwindigkeit 3.: Y = s[m], X = t[s] Weg |
Re: [LaTeX: pstricks] Probleme mit zu großer Dimensionsdiffe
Die Abstände der "Wertrichtstriche" auf der X-Achse sollen ein gutes Maß haben, also 1cm mindestens. Das heißt im Klartext: Die X-Achse müsste man so lassen wie bei mir oben, allerdings verbreitern. Denn jeder Strich auf der X-Achse muss 0,002h größer sein als der vorherige.
(Mensch wie heißen die Striche bloß....) So soll es also aussehen:
Code:
Hier eine mögliche Lösung:
- 20km/h
| | - 10km/h | | |---------|-------| 0,000h 0,0002h 0,0004h
Code:
Man kann die Probleme mit der Integer-Arithmetik bei LaTeX umgehen, indem man sich eigene Maßstäbe setzt.
\begin{pspicture}(-1,-1)(8,5)
\psset{xAxisLabel =$\frac{t}{h}$,yAxisLabel =$\frac{v}{\frac{km}{h}}$} \begin{psgraph}[arrows=->,Dx=0.002,dx=1cm,Dy=10](0,0)(0,0)(19,69){7cm}{4cm} \psline[linecolor=blue](0,0)(10,60)(10,60)(18,60) \end{psgraph} \end{pspicture} [edit=Matze]Lösung von Nils_13 eingefügt. MfG, Matze[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz