Anzeige:
Ergebnis 1 bis 5 von 5

Thema: pgfplots, xtick=data: Koordinaten mit selben y-Wert nebeneinander malen?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    18.09.2012
    Beiträge
    3

    pgfplots, xtick=data: Koordinaten mit selben y-Wert nebeneinander malen?

    Hallo,

    ich habe seit Tagen im Netz gesucht aber keine Info gefunden. Hier mein Problem:

    Ich habe ein Diagramm mit PGFPLOTS, das als x-Achse
    Code:
    xtick=data
    hat.
    Des Weiteren habe ich pro xtick 4 Werte, die ich als Quadrate und Dreiecke eintrage.

    So lange die Werte alle unterchiedlich sind, bin ich zufrieden und man kann alles erkennen.
    Problem ist, für die Instanz 1 habe ich 3 mal den selben Wert. Durch die bisherige Konstruktion übermalt tikz mit dem zweiten Dreieck das erste und es sieht aus, als ob Algo 2 keinen Wert hat für Instanz 1.

    Ich hätte gern, dass bei gleichen Werten die Symbole einfach nebeneinander gemalt werden. Platz ist dafür ja da. Doch hat scheinbar vor mir nie jemand ein ähnliches Problem gehabt oder ich habe falsch gesucht :-(
    Kann mir nicht vorstellen, dass das nicht gehen soll. Ich nehme auch gern ne Lösung mit Brecheisen ;-)

    Voraussetzungen:
    Die Symbole müssen so bleiben und ich will KEINE Kurve durch die Punkte zeichnen.
    Ich habe für mein echtes Diagramm sehr viele Instanzen, wodurch ein Balkendiagramm sehr hässlich wird. Ich kann das Diagramm aus inhaltlichen Gründen nicht in zwei aufteilen.

    Minimalbeispiel:

    Code:
    \begin{tikzpicture}
      \begin{semilogyaxis}
      [
        xlabel={Instanzen},
        ylabel={Laufzeit Algorithmus in ms},
        ymin=0,ymax=1000,
        xtick = data,
        yticklabel={%
    		\pgfplotsset{/pgf/fpu}% <-- erweiterter zahlenbereich
    		\pgfmathparse{exp(\tick)}% exponentiere den exponent
    		\pgfmathprintnumber[fixed]{\pgfmathresult}% formatiere die zahl
    		},
    		y tick label style={/pgf/number format/use comma, /pgf/number format/1000 sep={.}},
        x tick label style={rotate=45,anchor=east},
    		legend pos=north west, %,legend columns=-1},
        symbolic x coords={Instanz 1, Instanz 2, Instanz 3}
      ]
    		\addplot[color=green, draw=black, mark=square*,only marks]coordinates{
          (Instanz 1, 46) (Instanz 2, 515) (Instanz 3, 109) 
        };
        \addlegendentry{Algo 1}
        
    		\addplot[color=blue, draw=black, mark=triangle*,only marks] coordinates{
    			(Instanz 1, 31) (Instanz 2, 421) (Instanz 3, 94) 
        };
        \addlegendentry{Algo 2}		       
        
        \addplot[color=yellow, draw=black, mark=square*,only marks] coordinates{
    			(Instanz 1, 31) (Instanz 2, 187) (Instanz 3, 62) 
        };
        \addlegendentry{Algo 3}
        
        \addplot[color=magenta, draw=black, mark=triangle*,only marks] coordinates{
        	(Instanz 1, 31) (Instanz 2, 140) (Instanz 3, 47) 
        };
        \addlegendentry{Algo 4}
    	\end{semilogyaxis}
    \end{tikzpicture}
    Danke, viele Grüße

    Ringo
    Geändert von RingoP601 (18-09-2012 um 17:32 Uhr)

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •