Anzeige:
Ergebnis 1 bis 5 von 5

Thema: pgfplots: logarithmische x-Achse; Problem mit Punkt bei x=0

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.09.2010
    Beiträge
    21

    pgfplots: logarithmische x-Achse; Problem mit Punkt bei x=0

    Hallo zusammen,

    ich möchte mit pgfplots einen Graphen erstellen, mit einer logarithmisch skalierten x-Achse.

    Die x-Werte liegen zwischen 0--10^-3. Wegen der Skalierung wird mir der Punkt bei x=0 nicht mehr angezeigt.

    Lasse ich die Skalierung weg, wird der Graph im x-Achsenbereich 0--10^-4 so zusammengestaucht,
    dass man die Punkte darin nicht mehr voneinander unterscheiden kann.

    Ich möchte also zur besseren Darstellung die Skalierung beibehalten,
    aber auch den Punkt bei x=0 darstellen.

    Hat jemand einen Rat?
    Ich benutze TeXNicCenter 1.0 und MiKTeX 2.8.

    Gruß
    habo

    Code:
    \documentclass{scrreprt}
    
    \usepackage{pgfplots}%Um Tabellenkalkulationen einzufuegen
    
    \pgfplotsset{
    every axis x label/.append style={
    text=gray,
    anchor= near ticklabel
    },
    every axis y label/.append style={
    rotate=-90,
    text=gray,
    anchor= near ticklabel
    },
    every  axis/.append  style={
    mark= none,
    },
    every  tick label/.append  style={
    text=gray
    },
    every  axis  legend/.append  style={
    anchor= west,
    text=gray,
    ,
    },
    }%Legt globale Einstellungen fuer Graphen fest (Achsenbeschriftung, Farbe)
    
    \begin{document}
    \tikzset{
    every  pin/.style={font=\small},
    small  dot/.style={fill=black,circle,scale=0.25}
    }
    \begin{tikzpicture}
    \begin{semilogxaxis}[
    title=So sieht's aus,
    axis x line=bottom,
    axis y line=left,
    xmin=0,
    ymin=0,
    xmax=0.001,
    ymax=110,
    every  outer  x  axis  line/.append  style={-stealth,gray!50},
    every  outer  y  axis  line/.append  style={-stealth,gray!50},
    ]
    \addplot[
    color=orange!65,
    ]
    coordinates{
    (0, 100)
    (0.0000001, 90)
    (0.000001, 96)
    (0.00001, 96)
    (0.0001, 27)
    (0.001, 0)
    };
    \addplot[
    color=orange,
    ]
    coordinates{
    (0, 100)
    (0.0000001, 106)
    (0.000001, 97)
    (0.00001, 100)
    (0.0001, 94)
    (0.001, 109)
    };
    \end{semilogxaxis}
    \end{tikzpicture}
    
    \tikzset{
    every  pin/.style={font=\small},
    small  dot/.style={fill=black,circle,scale=0.25}
    }
    \begin{tikzpicture}
    \begin{axis}[
    title=So bitte nicht,
    axis x line=bottom,
    axis y line=left,
    xmin=0,
    ymin=0,
    xmax=0.001,
    ymax=110,
    every  outer  x  axis  line/.append  style={-stealth,gray!50},
    every  outer  y  axis  line/.append  style={-stealth,gray!50},
    ]
    \addplot[
    color=orange!65,
    ]
    coordinates{
    (0, 100)
    (0.0000001, 90)
    (0.000001, 96)
    (0.00001, 96)
    (0.0001, 27)
    (0.001, 0)
    };
    \addplot[
    color=orange,
    ]
    coordinates{
    (0, 100)
    (0.0000001, 106)
    (0.000001, 97)
    (0.00001, 100)
    (0.0001, 94)
    (0.001, 109)
    };
    \end{axis}
    \end{tikzpicture}
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    27.11.2007
    Beiträge
    375
    Hallo,

    wo soll denn x=0 auf einer logarithmischen Skala angezeigt werden? Eigentlich ja gaaaaaaaaaaaaaaaaaaaanz weit links (log(x) geht gegen -Unendlich, wenn x gegen 0 geht)...

    Christian.
    Ubuntu 16.04 -- TeX Live 2015 -- Emacs (AUCTeX, RefTeX)

  3. #3
    Registrierter Benutzer
    Registriert seit
    20.09.2010
    Beiträge
    21
    Da hast du natürlich recht, der Logarithmus ist für Null nicht definiert.
    Das eigentliche Problem ist ja nicht die logarithmische Skalierung der x-Achse,
    sondern die Darstellung des Graphen bei normaler Skalierung. Dabei werden
    die Punkte stark zusammengestaucht.
    Wenn ich irgendwie bei normaler Skalierung der x-Achse die Punkte vernünftig
    anzeigen könnte, würde ich mir die logarithmische Skalierung sparen.

  4. #4
    Registrierter Benutzer
    Registriert seit
    27.11.2007
    Beiträge
    375
    Schwierig. Ich kenn ja die Art der Daten nicht. Aber vielleicht könntest du x=0 weglassen und stattdessen bei y=100 eine horizontale Linie zeichnen (sozusagen als Maximalwert) und diesen mit f(0) beschriften (falls deine Funktion f heißt).

    Christian.
    Ubuntu 16.04 -- TeX Live 2015 -- Emacs (AUCTeX, RefTeX)

  5. #5
    Registrierter Benutzer
    Registriert seit
    20.09.2010
    Beiträge
    21
    In meinem Code ist der Graph mit den Daten doch eingebaut.
    Ich verstehe nicht warum die Art der Daten relevant ist.
    Und wenn ich eine horizontale Linie zeichne, muss ich der Linie doch auch
    x-Werte zuordnen.
    Ich muss wohl oder übel den Punkt bei x=0 weglassen.

Stichworte

Lesezeichen

Berechtigungen

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