
Ich habe das folgende Diagramm und möchte die rote Linie verlängern, sodass sie die Achsen kreuzt und am Anfang und Ende ein Stück weitergeht, wie im zweiten Bild, aber ich möchte, dass die roten und blauen Punkte weiterhin vertikal ausgerichtet sind. Außerdem sollte die verlängerte rote Linie über der oberen Achse enden.
\documentclass{article}
\usepackage{pgf}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{figure} [tb]%
\centering
\begin{tikzpicture}
\begin{semilogxaxis}[
enlarge y limits=true,
enlarge x limits=false]
\addplot[very thick,draw=blue!70, mark=*,mark options={color=blue!70}] coordinates
{(229,62) (1475,122) (23598,255) (27101,272) (32427,280) (55124,322) (758667,5509) (1273808,5649) (1406902,6375)};
\end{semilogxaxis}
\begin{semilogxaxis}[
smooth,
axis y line=none,
axis x line=none,
ticks=none,
enlarge y limits=true,
enlarge x limits=false]
\addplot[very thick,draw=red!70] expression[domain=229:1406902] {x};
\addplot[draw=none,mark=*,mark options={color=red!70}] coordinates
{(229,229) (1475,1475) (23598,23598) (27101,27101) (32427,32427) (55124,55124) (758667,758667) (1273808,1273808) (1406902,1406902)};
\end{semilogxaxis}
\end{tikzpicture}
\caption{Caption}
\end{figure}
\end{document}
Ich habe versucht, die Breite und Höhe der zweiten Halblogaxis zu ändern und den Definitionsbereich der Kurve darin zu ändern, aber dann gelingt es mir nicht, die Punkte vertikal auszurichten.
Ich habe auch versucht, ein zu verwenden \draw[domain=0:2000000,smooth,variable=\x] plot (axis cs:\x,\x);
, aber dann erhalte ich eine Dimension too large
Fehlermeldung und kann Tikz nicht dazu bringen, \draw plot
die FPU (Floating Point Unit) zu verwenden.
Antwort1
Sie können nach dem Plotten weiter zeichnen und die speziellen Koordinaten verwenden current plot end/begin
. Indem Sie Dummy-Koordinaten sehr nahe am Ende und am Anfang platzieren, können Sie eine Tangentennäherung imitieren. Dazu müssen Sie jedoch das Clipping-Verhalten der Achsen ausschalten. SieheLinienstil innerhalb eines Diagramms ändern, um gestrichelte Trendlinie hinzuzufügen?für eine ähnliche Lösung mit einer Knotenform, die in bestimmten Fällen besser sein könnte, wenn die Darstellung nicht zu ausgefallen ist.
\documentclass{article}
%\usepackage{pgf}
%\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\begin{document}
\begin{figure} [tb]%
\centering
\begin{tikzpicture}
\begin{semilogxaxis}[
enlarge y limits=true,clip=false,
enlarge x limits=false]
\addplot[very thick,draw=blue!70, mark=*,mark options={color=blue!70}] coordinates
{(229,62) (1475,122) (23598,255) (27101,272) (32427,280) (55124,322) (758667,5509) (1273808,5649) (1406902,6375)};
\end{semilogxaxis}
\begin{semilogxaxis}[
smooth,clip=false,
axis y line=none,
axis x line=none,
ticks=none,
enlarge y limits=true,
enlarge x limits=false]
\addplot[very thick,draw=red!70] expression[domain=229:1406902] {x}
coordinate [pos=0.98] (c2) coordinate [pos=0.01] (c3) (current plot end) -- ($(c2)!10!(current plot end)$)
(current plot begin) -- ($(c3)!1.2!(current plot begin)$);
\addplot[draw=none,mark=*,mark options={color=red!70}] coordinates
{(229,229) (1475,1475) (23598,23598) (27101,27101) (32427,32427) (55124,55124) (758667,758667) (1273808,1273808) (1406902,1406902)};
\end{semilogxaxis}
\end{tikzpicture}
\caption{Caption}
\end{figure}
\end{document}