Seite 1 von 1

Problem mit der Legende in einem Diagramm bei zwei Achsen

Verfasst: Mo 19. Jun 2023, 08:00
von James2023
Hallo zusammen,

ich habe leider ein Problem mit einem zweiachsigen Diagramm. Bei der Legende wird nur der erste Eintrag gezeigt "Längsverschiebung...". Der zweite Legendeintrag ist leider nicht zu sehen.

Vielen Dank im Voraus für die Hilfe und einen schönen Tag!
\begin{figure}[h]
	\centering
	\begin{tikzpicture}
	\begin{axis}[
			width=0.9\textwidth,height=0.5\textheight,
			xlabel={Branddauer in [min]},
			ylabel={Längsverschiebung $u_x$ in [mm]},	
			xmin=0, xmax=30,
			xtick={0,5,...,30},
			ymin=0, ymax=25,
			ytick={0,5,...,25},
			grid=major,
			grid style=dashed,
			%thick,
			black,
			every axis plot/.append style={ultra thick},
			ticklabel style={% gilt für x und y
			/pgf/number format/.cd,
			use comma,% Komma als Dezimaltrenner
			1000 sep = {}% keine Tausendertrennung 
			}					
	]
	\addplot[gray!60]
		table [x=t1, y=ux1, col sep=semicolon] {Diagramme/Studie-thermische-Dehnung-Ziel1.csv};
	\end{axis}
	\begin{axis}[
			width=0.9\textwidth,height=0.5\textheight,
			axis y line*=right,
			axis x line=none,
			xmin=0, xmax=30,
			xtick={0,5,...,30},
			ylabel={Druckkraft N in [kN]},	
			ymin=0, ymax=2500,
			ytick={0,500,...,2500},
			black,
			every axis plot/.append style={ultra thick},
			ticklabel style={% gilt für x und y
			/pgf/number format/.cd,
			use comma,% Komma als Dezimaltrenner
			1000 sep = {}% keine Tausendertrennung 
			},
			legend style={
				at={(0.95,0.05)},
				anchor=south east,
				nodes={text width=20em, align=left} % Legenden-Text linksbündig ausrichten
			},
	]
	\addplot[black]
		table [x=t2, y=Druck, col sep=semicolon] {Diagramme/Studie-thermische-Dehnung-Ziel1.csv};
	\addlegendentry{Längsverschiebung $u_x$ in [mm]}
	\addlegendentry{Druckkraft in [kN]}
	\end{axis}	
	\end{tikzpicture}
	\caption{Längsverschiebung $u_x$ in [mm] für den statisch bestimmt gelagerten Einfeldträger und Druckkraft in [kN] für den einfach statisch unbestimmt gelagerten Einfeldträger.}
	\label{Bild:Thermische-Dehnung-Ziel1}
\end{figure}

Re: Problem mit der Legende in einem Diagramm bei zwei Achsen

Verfasst: Mo 19. Jun 2023, 11:05
von Corioliskraft
Hallo James2023 und herzlich Willkommen im Forum!

Ich bitte dich kurz dein Problematik in einem funktionierenden Minimalbeispiel aufzuzeigen um dir helfen zu können. Verwende hierzu bitte die Code-Funktion
Das hier ist Code
Füge hier alle notwendigen Zeilen in Codeform ein um ein vollwertiges Dokument in minimalster Ausführung hier Kompilieren zu können.
wie-kann-ich-code-in-meinem-beitrag-hervorheben-t18410.html

Re: Problem mit der Legende in einem Diagramm bei zwei Achsen

Verfasst: Mo 19. Jun 2023, 11:52
von Stefan Kottwitz
Hallo James,

willkommen im Forum!

Ich habe oben mal den Code "markiert" als solchen, dafür gibt es einen Button wenn man den Text/Code hier reinschreibt. Folge gern dem Link von Jonas, um das nachzuschauen, wenn es unklar ist. Da siehst Du, dass man den Code hier direkt übersetzen kann. Für unvollständige Dokumente wird sogar automatisch ein Dokumentrahmen ergänzt. Klick mal auf "LaTeX-Ausgabe" in Deinem Beitrag, dann siehst Du es. Allerdings läuft es in einen Fehler, weil die CSV-Dateien ja nicht hier vorhanden sind. Kannst Du sie hier anhängen? Unter dem Editierfeld beim Beitrag-Schreiben gibt es den Tab "Dateianhänge". Oder mache einen simplen Dummy-Plot wie \addplot[...] {1}.

Wenn ein Problembeispiel hier vollständig ist (übersetzbar oder den Fehler zeigt und das Problem erkennbar ist), dann können wir Dir direkt den Code geben, der das repariert.

Hier in diesem Fall ist das Problem, dass die Legende in der zweiten axis-Umgebung ja nichts vom Plot in der ersten axis-Umgebung weiß. Du kannst manuell Legenden-Einträge hinzufügen mit \addlegendimage{<plot options>} und \addlegendentry{<plot title>} und dabei auch den Stil des ersten Plots mit /pgfplots/refstyle=<name> referenzieren, oder die Legende jeweils direkt an den Plot schreiben mit einem node im \addplot-Befehl.

Stefan