Guten Tag,

weiss jemenad wie man die Zehnerpotenz rechts neben die zweite y-Achse verschieben kann? alt text

\documentclass{article} 
\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage{pgfplots}  %axis
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        width=13cm,
        height=7cm,
        at={(0,0)},
        scale only axis,
        axis y line*=left,
        xmin=0, 
        xmax=140, 
        ymin=-2,
        ymax=10, 
        xlabel style={font=\small},
        xlabel={l},
        ylabel style={font=\small},
        ylabel={$z$},
        axis background/.style={fill=white},
        xmajorgrids,
        ymajorgrids,
        ]
        \addplot [color=red]
        table[row sep=crcr]{%
            0   -0.808648568650824\\
            140.01  9.1935736290271\\
        };
        \label{plot_one}
    \end{axis}


    \coordinate (v0) at (0,7);
    \coordinate (v1) at (0,7.5);
    \draw (v0) -- (v1);
    \coordinate (v2) at ({60*13/140},7.5) {};
    \draw[<->, >=stealth']  (v1) -- (v2) node[midway,yshift=-5mm, fill=white, right,rotate=90, font=\scriptsize] {Abschnitt1};
    \coordinate  (v3) at ({77.5*13/140},7.5);
    \draw[<->, >=stealth']  (v3) --(v2) node[midway,yshift=-5mm, fill=white,right ,rotate=90, font=\scriptsize] {Abschnitt2};
    \coordinate  (v5) at ({60*13/140},7);
    \coordinate  (v4) at ({77.5*13/140},7);
    \draw  (v4) -- (v3);
    \draw  (v2) -- (v5);
    \coordinate (v6) at ({115*13/140},7.5);
    \coordinate  (v7) at ({115*13/140},7);
    \draw  (v6) -- (v7);
    \draw[<->, >=stealth']   (v3) -- (v6) node[midway,yshift=-5mm, fill=white,right,rotate=90, font=\scriptsize,text width=1cm] {Abschnitt3};
    \coordinate  (v8) at ({125*13/140},7.5);
    \coordinate (v9) at ({125*13/140},7);
    \draw  (v8) -- (v9);
    \draw[<->, >=stealth']   (v6) -- (v8) node[midway,yshift=-5mm, fill=white,right ,rotate=90, font=\scriptsize,text width=1cm] {Abschnitt4};
    \coordinate  (v10) at ({140*13/140},7.5);
    \coordinate  (v11) at ({140*13/140},7);
    \draw  (v10) -- (v11);
    \draw[<->, >=stealth']   (v8) -- (v10) node[midway,yshift=-5mm, fill=white,right ,rotate=90, font=\scriptsize,text width=1cm] {Abschnitt5};
    % 
    \begin{axis}[
        width=13cm,
        height=7cm,
        at={(0,0)},
        scale only axis,
        %axis y line=left,
        axis y line*=right, 
        xmin=0, 
        xmax=140, 
        ymin=0,
        ymax=0.0006, 
        xticklabels=none,
        ylabel style={font=\small},
        ylabel={$\epsilon$},
        % hiermit lässt sich die Beschriftung nur als Ganzes verschieben
%           ticklabel style={
%           draw, % added just for example
%           anchor=south east,
%           xshift=2pt,
%           yshift=-2pt, % you have -2pt here
%       },
        legend style={at={(0.03,0.97)}, anchor=north west, legend cell align=left, align=left, draw=white!15!black}
        ]
        \addlegendimage{/pgfplots/refstyle=plot_one}\addlegendentry{$z$}
        \addplot [color=blue]
        table[row sep=crcr]{%
            0   5.27610580989668e-06\\
            0.707121212121212   5.30333721330517e-06\\
            70 0.00059\\
            140.01  -6.94394699371304e-07\\
        };
        \addlegendentry{$\epsilon$}
    \end{axis}
\end{tikzpicture}%
\end{document}

gefragt 25 Feb '22, 13:36

flo1234's gravatar image

flo1234
8919
Akzeptiert-Rate: 0%

bearbeitet 28 Feb '22, 11:38

cis's gravatar image

cis
9.5k75452491

1

Benutze den Stil y tick scale label style, den Du im Abschnitt 4.18.1 "All Supported Styles" der Dokumentation von pgfplots findest.

(25 Feb '22, 15:42) Bartman

Du setzt das m.E. an Stellen relativ codeintensiv um.

  1. Setze mehrfach gebrauchte Schlüssel global (und nicht überall wiederholend) oder definiere dafür einen gemeinsamen Stil.
  2. Für die Annotationen oben erstelle einfach eine 2. x-Achse (ähnlich wie Du es bei der 2. y-Achse getan hast).
    Das macht Dich im Übrigen unabhängig von der Festlegung width=13cm, height=7cm, für die Du -quasi nach Augenmaß- Bemaßungspfeile mit vielen \draw's ergänzt hast - auch das lässt sich zusammenfassen.
    Hinweis: Da ich Deine Intervalle nicht kenne bzw. nicht nachgerechnet habe, solltest Du die Zahlenwerte 0/60, 60/78, 78/115, 115/125, 125/140 überprüfen.

Hinweis: Damit man die Achsen unterscheiden kann habe ich sie farbig gemacht.

Zum Problem: Das Problem der schlecht gesetzten Zehnerpotenz rührt von dem Stern in axis y line*=right, der den Achsenpfeil beseitigt (möglicherweise ein Paketfehler bei diesem Befehl). Verwendet man axis y line=right ist die Position ok, aber es erscheint ein Achsenpfeil. Also habe ich das Problem so gelöst:

% Problem =======================
%axis y line*=right,%  vermeidet Achsenpfeil, aber setzt Zehnerpotenz ungünstig
axis y line=right, % setzt Zehnerpotenz gut, aber erzeugt Achsenpfeil  
axis line style={-}, % beseitigt Achsenpfeil
% =============================


alt text

\documentclass{article} 
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary{arrows}
\usepackage{pgfplots}   
\pgfplotsset{compat=newest,
% Globale, gemeinsame Schlüssel
label style={font=\small},
width=13cm,   height=7cm, % optional, bei Bedarf auskommentieren
%at={(0,0)}, % kein Effekt
}
\begin{document}
\begin{tikzpicture}[
>=stealth',
]
\begin{axis}[
scale only axis,
axis y line*=left,
xmin=0,       xmax=140, 
ymin=-2,     ymax=10, 
xlabel={l},
ylabel={$z$},
xmajorgrids,
ymajorgrids,
]
\addplot [color=red] table[row sep=crcr]{
0         -0.808648568650824\\
140.01  9.1935736290271\\
};
\label{plot_one}
\end{axis}

% 2. y-Achse
\begin{axis}[orange, % auskommentieren!
scale only axis,
% Problem =======================
%axis y line*=right,%  vermeidet Achsenpfeil, aber setzt Zehnerpotenz ungünstig
axis y line=right, % setzt Zehnerpotenz gut, aber erzeugt Achsenpfeil  
axis line style={-}, % beseitigt Achsenpfeil
% =============================
axis x line=none, % ergänzt
xmin=0,      xmax=140,   
ymin=0,      ymax=0.0006, 
xticklabels=none,
ylabel={$\epsilon$},
legend style={at={(0.03,0.97)}, anchor=north west, legend cell align=left, align=left, draw=white!15!black}
]
\addlegendimage{/pgfplots/refstyle=plot_one}\addlegendentry{$z$}
\addplot [color=blue] table[row sep=crcr]{
0                               5.27610580989668e-06\\
0.707121212121212   5.30333721330517e-06\\
70                            0.00059\\
140.01                     -6.94394699371304e-07\\
};
\addlegendentry{$\epsilon$}
\end{axis}

% 2. x-Achse mit Annotationen und Bemaßungspfeilen
\begin{axis}[purple, % auskommentieren!
clip=false, % notwendig
scale only axis,
axis y line=none, 
axis x line*=top,
xmin=0,         xmax=140, 
ymin=-2,        ymax=10, % verlangt
xtick={30, 69, 97, 120, 133},%
xticklabels={Abschnitt 1 ,Abschnitt 2, Abschnitt 3, Abschnitt 4, Abschnitt 5},
xticklabel style={
anchor=west,
font=\scriptsize, 
rotate=90, draw=none, inner sep=3pt, 
xshift=3pt, fill=white,       },
]
\begin{scope}[on background layer]
\foreach \u/\v in {0/60, 60/78,  78/115, 115/125, 125/140}{%% <---- Wertepaare überprüfen!
\edef\temp{
    \noexpand\draw[<->] (\u,11) -- (\v,11);
    \noexpand\draw[] (\u,10) -- (\u,11);
    \noexpand\draw[] (\v,10) -- (\v,11);
}\temp
}%%
\end{scope}
\end{axis}
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 27 Feb '22, 16:15

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%

bearbeitet 28 Feb '22, 11:17

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×728
×296
×8

gestellte Frage: 25 Feb '22, 13:36

Frage wurde gesehen: 1,986 Mal

zuletzt geändert: 28 Feb '22, 11:17