Koordinatendarstellung in pgfplots falsch

Tabellen und Grafiken erstellen und anordnen


thor
Forum-Anfänger
Forum-Anfänger
Beiträge: 48
Registriert: Do 25. Okt 2012, 14:43

Koordinatendarstellung in pgfplots falsch

Beitrag 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
Dateianhänge
Grafik_TiKZ.jpg
Grafik_TiKZ.jpg (42 KiB) 2471 mal betrachtet

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Du erhöhst die Chance auf eine qualifizierte Antwort wenn du ein Minimalbeisiel [2] machst.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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

Gast

Beitrag 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

thor
Forum-Anfänger
Forum-Anfänger
Beiträge: 48
Registriert: Do 25. Okt 2012, 14:43

Beitrag 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

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag 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).
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


thor
Forum-Anfänger
Forum-Anfänger
Beiträge: 48
Registriert: Do 25. Okt 2012, 14:43

Beitrag von thor »

Danke, wieder was dazu gelernt :)

VG

Thorsten

Antworten