Subfigure Umgebung mit pgfplots und legend Eintrag Referenzierung

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Subfigure Umgebung mit pgfplots und legend Eintrag Referenzierung

Re: Subfigure Umgebung mit pgfplots und legend Eintrag Referenzierung

von robert26 » Do 21. Jan 2021, 07:35

Vielen Dank für die schnelle Antwort. Mit deiner Lösung kann ich jetzt auf jeden Fall arbeiten.

Re: Subfigure Umgebung mit pgfplots und legend Eintrag Referenzierung

von gast » Mi 20. Jan 2021, 18:21

Zunächst sei darauf hingewiesen, dass dein Code nicht funktioniert, weil er falsch markiert wurde. Der MWE-Knopf in der Toolbar dient lediglich dazu einen Link auf die Minimalbeispiel-Anleitung zu setzen. Für den Code eine Minimalbeispiels, ist hingegen der </>-Knopf bzw. ein Code-Tag zu verwenden.

Da \definecolor lokale arbeitet (was du ja auch ausdrücklich möchtest), kann das nicht funktionieren. Lokale Definitionen enden am Ende der aktuellen Gruppe. Jede Umgebung stellt auch eine Gruppe dar. Damit endet eine Farbdeklaration mit \definecolor, die innerhalb einer subfigure-Umgebung vorgenommen wird, immer am zugehörigen \end{subfigure}. Die Farbdeklaration muss also zwingend min. außerhalb der subfigure-Umgebung in die figure-Umgebung verschoben werden:

\documentclass{article}

\usepackage[format=plain]{caption}
\usepackage{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}% Siehe unbedingt: https://texwelt.de/fragen/19163

\begin{document}
\begin{figure}
\definecolor{mycolor1}{rgb}{1,0,0}%
\definecolor{mycolor2}{rgb}{0.5,1,1}%
\begin{subfigure}[]{\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=square*,mycolor1,samples=15]{3*x+2.5*rand};\label{pgfplots:label1}
\end{axis}
\end{tikzpicture}
\caption{Caption A. \ref{pgfplots:label1} mark.}
\end{subfigure}\vfill
\begin{subfigure}[]{\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=square*,mycolor2,samples=15]{3*x+2.5*rand};\label{pgfplots:label2}
\end{axis}
\end{tikzpicture}
\caption{Caption B. \ref{pgfplots:label2} mark.}
\end{subfigure}
\caption{Caption total: Mark A \ref{pgfplots:label1}, Mark B \ref{pgfplots:label2}.}
\end{figure}
\end{document}

Die Pakete, die ich weggelassen habe, werden alle von pgfplots geladen.

Subfigure Umgebung mit pgfplots und legend Eintrag Referenzierung

von robert26 » Mi 20. Jan 2021, 17:40

Hallo zusammen,

ich arbeite an einem großen Dokument mit vielen Abbildungen. Dabei füge ich auch tikzfigures innerhalb der Subfigure Umgebung ein. In der Caption der Abbildung möchte ich nun die Markierung referenzieren wie im pgfplot manual beschrieben über \label und \ref. Zusätzlich definiere ich lokal Farben für die entsprechende Abbildung.

Das Problem besteht nun darin, dass die Farbe der Marker in der Hauptcaption nicht korrekt ist und eine Fehlermeldung erscheint: "Package pgfkeys Error: I do not know the key '/tikz/mycolor1' and I am going". Nur in den Captions der Subfigures ist das Referenzieren möglich. Mit einer globalen Farbdefinition kann das Problem gelöst werden. Das möchte ich aber unbedingt vermeiden.

Ich habe mich schon intensiv durch das subcaption manual und andere Foren gearbeitet aber bin leider nicht fündig geworden.

Kennt jemand eine Lösung unabhängig von globalen Farbdefinitionen?

Im Beispiel ist das enstprechende Problem zu erkennen.

\documentclass{article}

\usepackage{xcolor}
\usepackage[format=plain]{caption}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepackage{tikz}

\begin{document}
\begin{figure}
\begin{subfigure}[]{\textwidth}
\centering
\definecolor{mycolor1}{rgb}{1,0,0}%
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=square*,mycolor1,samples=15]{3*x+2.5*rand};\label{pgfplots:label1}
\end{axis}
\end{tikzpicture}
\caption{Caption A. \ref{pgfplots:label1} mark.}
\end{subfigure}\vfill
\begin{subfigure}[]{\textwidth}
\centering
\definecolor{mycolor2}{rgb}{0.5,1,1}%
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=square*,mycolor2,samples=15]{3*x+2.5*rand};\label{pgfplots:label2}
\end{axis}
\end{tikzpicture}
\caption{Caption B. \ref{pgfplots:label2} mark.}
\end{subfigure}
\caption{Caption total: Mark A \ref{pgfplots:label1}, Mark B \ref{pgfplots:label2}.}
\end{figure}
\end{document}

Nach oben