Seite 1 von 1

Koordinatendarstellung in pgfplots falsch

Verfasst: Do 25. Okt 2012, 14:59
von thor
Hallo,

ich habe ein kleines Problemchen mit pgfplots. Der Code sieht folgendermaßen aus:
\begin{tikzpicture}[scale=1.5]
			    % Achsen definieren
			    \begin{axis}[
			    style=thick,
			    axis x line=bottom,
				axis y line=left,
				grid=both,  
				grid style={dashed, gray!50},
				xmin=10,xmax=110,
				ymin=112,ymax=117,
				xlabel=Menge,
				ylabel=Preis,
				minor y tick num=1,
				minor x tick num=2,
				xtick align=outside,
				ytick align=outside,
				legend pos=south east]

				% Daten plotten
				\addplot coordinates{%
				    (100,113)
				    (80,114)
				    (70,115)
				    (40,116)%				    
				};
				\addlegendentry{Nachfrage}
				
				\addplot coordinates{%
				    (25,113)
				    (45,114)
				    (70,115)
				    (75,116)%				    
				};
				\addlegendentry{Angebot}
			    \end{axis}
			\end{tikzpicture}
Das ganze ist ein kleines Preis-Mengen-Diagramm und sieht auch schon so aus, wie ich es gerne hätte. Wenn man sich aber die rote Angebotskurve ansieht, dann fällt auf, dass die die beiden Punkte (25,113) und (45,114) nicht korrekt dargestellt werden. Die X-Koordinaten liegen eher bei 24, bzw. 44, Ich habe mal ein Bild mit hochgeladen, damit man es besser sehen kann. Ich weiß wirklich nicht, woran das liegt. Weiß jemand Rat?

Vielen Dank!

Thorsten Grothe

Verfasst: Do 25. Okt 2012, 15:03
von bloodworks
Du erhöhst die Chance auf eine qualifizierte Antwort wenn du ein Minimalbeisiel [2] machst.

Verfasst: Do 25. Okt 2012, 15:30
von esdd
Hallo,

die beiden Punkte sind in deinem Diagramm korrekt eingezeichnet. Der andere Eindruck entsteht, weil zum Beispiel zwischen 20 und 40 zwei Zwischenticks eingefügt werden, also bei etwa 26,6 und bei etwa 33,3.

An deiner Stelle würde ich "minor x tick num" entweder gleich 1 oder gleich 3 setzen.

Gruß
Elke

Verfasst: Do 25. Okt 2012, 15:39
von Gast
Ich sehe keinen Fehler.

Du hast zwei Linien zwischen 20 und 40, also liegt die erste bei etwa 26,6. Wenn ich mit minor x tick num=3 drei Linien erzwinge, so dass eine Linie durch 25 läuft, liegt der rote Punkt genau drauf.

Ulrike Fischer
www.troubleshooting-tex.de

Verfasst: Do 25. Okt 2012, 15:52
von thor
esdd hat geschrieben:
(...)
die beiden Punkte sind in deinem Diagramm korrekt eingezeichnet. Der andere Eindruck entsteht, weil zum Beispiel zwischen 20 und 40 zwei Zwischenticks eingefügt werden, also bei etwa 26,6 und bei etwa 33,3.

An deiner Stelle würde ich "minor x tick num" entweder gleich 1 oder gleich 3 setzen.
Vielen Dank für die schnelle Antwort, ich dachte natürlich, dass die Zwischenticks zwischen 20 und 40 den Werten 25 und 30 entsprächen :oops Das geht natürlich nicht :)

mit "minor x tick num" = 3 geht es wunderbar!

P.S: Das mit dem Minimalbeispiel stimmt natürlich, deshalb hänge ich hier den korrigierten Code an, damit andere auch etwas davon haben!
% Preis-Mengen-Diagramm korrigiert
\documentclass[11pt,fleqn]{article}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{xcolor}
\usepackage{colortbl}

% Einstellungen und Befehle
\pgfplotsset{every axis/.append
    style={font=\sffamily\footnotesize}}    

\pgfplotsset{every axis label/.append 
    style={font=\bf\sffamily\footnotesize}}

\pgfplotsset{every tick/.append 
    style={thick,black}}

\pgfplotsset{every tick label/.append 
    style={font=\sffamily\footnotesize}}

\colorlet{tableblackheadcolor}{black!60}
\newcolumntype{Y}{>{\sffamily\small}X}

\begin{document}
    \begin{tikzpicture}[scale=1.5]
	% Achsen definieren
	\begin{axis}[
	    style=thick,
	    axis x line=bottom,
	    axis y line=left,
	    grid=both,  
	    grid style={dashed, gray!50},
	    xmin=10,xmax=110,
	    ymin=112,ymax=117,
	    xlabel=Menge,
	    ylabel=Preis,
	    minor y tick num=1,
	    minor x tick num=3, % stand auf 2 = Fehler!!
	    xtick align=outside,
	    ytick align=outside,
	    legend pos=south east]

	    % Daten plotten
	    \addplot coordinates{%
		(100,113)
		(80,114)
		(70,115)
		(40,116)%				    
	    };
	    \addlegendentry{Nachfrage}

	    \addplot coordinates{%
		(25,113)
		(45,114)
		(70,115)
		(75,116)%				    
	    };
	    \addlegendentry{Angebot}
	\end{axis}
    \end{tikzpicture}
\end{document}
Das Problem ist damit gelöst!

Vielen Dank.

Thorsten Grothe

Verfasst: Do 25. Okt 2012, 16:09
von bloodworks
thor hat geschrieben:
P.S: Das mit dem Minimalbeispiel stimmt natürlich, deshalb hänge ich hier den korrigierten Code an, damit andere auch etwas davon haben!
Klasse! Kleine Anmerkung: \bf ist ein LaTeX 2.09 Befehl unter LaTeX2e sollte man \bfseries verwenden (vergl. l2tabu).

Verfasst: Do 25. Okt 2012, 16:34
von thor
Danke, wieder was dazu gelernt :)

VG

Thorsten