Wie zeichnet man Koordinaten zwischen zwei Xticks?

Wie zeichnet man Koordinaten zwischen zwei Xticks?

Ich möchte einige Daten mit pgfplot darstellen. Hier ist ein Code, den ich geschrieben habe:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat = 1.3}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
  legend style={legend pos = north west, font=\footnotesize, draw=none},
  legend cell align=left,
  xtick=data,
  ytick={0,5,10,...,45},
  xticklabels={0,2,4,...,16,18},
  every axis label={font=\footnotesize},
  tick label style={font=\footnotesize},
  label style={font=\footnotesize},
  enlarge x limits=false,
  enlarge y limits=false]
  \addplot[lightgray, mark=*] table [x expr = \lineno, y = Time] {Data.dat};
  \addlegendentry{x}
  \end{axis}
\end{tikzpicture}
\end{document}

Der Inhalt der Datei Data.dat ist wie folgt:

 Points Time
   0        0
   2000     1.11
   4000     3.54
   6000     7.35
   8000     12.43
   10000    18.15
   12000    24.51
   14000    31.52
   16000    38.59
   17791    45.35

Da ich neu auf dieser Site bin, kann ich das Ausgabediagramm nicht veröffentlichen. Im Ausgabediagramm wird der letzte Punkt (17791, 45,35) fälschlicherweise bei x=18 und y=45,35 dargestellt.
Meine Frage lautet also: Wie kann ich dafür sorgen, dass der letzte Punkt korrekt zwischen den Punkten x=16 und x=18 dargestellt wird?

Antwort1

Der Punkt wird genau bei , dargestellt x=17.791. y=45.35Das Problem besteht darin, dass die für den letzten Teilstrich verwendete Beschriftung falsch ist (Sie haben sie manuell als 18 deklariert und dies überschreibt den Standardwert von 17.8). Das Problem liegt nicht beim Darstellen, sondern in der Art und Weise, wie Sie die x-Beschriftungen platzieren (insbesondere die letzte).

Im folgenden Beispiel zeige ich eine Möglichkeit, die Situation zu korrigieren: Ich habe und mit einem blauen Hilfsraster xtick=dataverwendet (sodass jetzt die Markierungen und ihre Beschriftungen automatisch aus der Tabelle übernommen werden), um anzuzeigen, wo sich der Punkt, der 18 entspricht, wirklich befindet. Außerdem habe ich die verwendete Markierung geändert (die von Ihnen verwendete Markierung ist meiner Meinung nach zu groß und könnte den Eindruck erwecken, als befände sie sich bei ) und außerdem nur zur Veranschaulichung eine andere Farbe verwendet. Wie Sie sehen, ist die x-Koordinate für den letzten Punkt genau dort, wo sie sein sollte (etwas links von der roten vertikalen Linie, die für gezeichnet wurde ):extra x ticksextra xtick labelsx=18x=18

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat = 1.3}
\begin{document}
\begin{tikzpicture}[scale=1.2]
\begin{axis}[
  xmax=18500,
  legend style={legend pos = north west, font=\footnotesize, draw=none},
  legend cell align=left,
  xtick=data,
   ytick={0,5,10,...,45},
   extra x ticks={18000},
   extra x tick labels={},
   extra x tick style={grid=major,tick label style={rotate=90,anchor=east}},
   major grid style={color=red},
   every axis label={font=\footnotesize},
   tick label style={font=\footnotesize},
  label style={font=\footnotesize},
  enlarge x limits=false,
  enlarge y limits=false,
  scaled x ticks=base 10:-3
]
  \addplot[blue, mark=x] table  {Data.dat};
  \addlegendentry{x}
  \end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Sie können eine explizite Liste verwenden für xmark:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat = 1.3}
\begin{document}
\begin{tikzpicture}[scale=1.2]
\begin{axis}[
  xmax=18500,
  ymax=46,
  legend style={legend pos = north west, font=\footnotesize, draw=none},
  legend cell align=left,
   xtick={0,2000,4000,6000,8000,...,14000,16000,18000},
   ytick={0,5,10,...,45},
  major grid style={color=red},
  every axis label={font=\footnotesize},
  tick label style={font=\footnotesize},
  label style={font=\footnotesize},
  enlarge x limits=false,
  enlarge y limits=false,
  scaled x ticks=base 10:-3
]
  \addplot[blue, mark=x] table  {Data.dat};
  \addlegendentry{x}
  \end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen