Matlab2Tikz-Farbbalken-/Farbkartenprobleme

Matlab2Tikz-Farbbalken-/Farbkartenprobleme

Ich habe einige Probleme mit dem Matlab2tikz-Skript von Nico Schlömer. In Matlab habe ich ein 3D-Diagramm mit einer Reihe von Patches erstellt. Einige Skalarwerte werden mithilfe der Jet-Farbkarte hervorgehoben (siehe angehängte *.png-Datei).

Matlab-Abbildung

Ich habe diese Abbildung dann in ein Tikzbild übersetzt, indem ich matlab2tikz('Test6.tex') aufgerufen habe. Matlab hat die Informationen ausgegeben

> Found colormap/jet to be a pretty good match for your color map (||diff||=0.0280337).

Kompilieren der ziemlich großen Tikz-Datei durch

\usetikzlibrary{external} \tikzset{external/system call={lualatex
    \tikzexternalcheckshellescape -halt-on-error
    -interaction=batchmode -jobname "\image" "\texsource"}}
\tikzexternalize[prefix=autofigs/]

Und

\begin{figure}[h]
\input{Bilder/Test6.tex}%
\caption{\label{fig:1}Our figure}
\end{figure}

die Verwendung von pdflatex erzeugt dieses Ergebnis (Screenshot des entsprechenden PDFs)

[Resultierende Ausgabe[2]

Sowohl die Farbkarte als auch die Farbleiste unterscheiden sich offensichtlich völlig vom Originaldiagramm. Kann mir jemand helfen, dieses Problem zu beheben?

Antwort1

Ich hatte das gleiche Problem. Ich glaube, es liegt ein Fehler bei der Generierung der Farbtabelle in der Datei matlab2tikz.m vor. Sie müssen einige Dinge in Ihrer Datei Test6.tex ändern:

In Ihrer Tex-Datei sollten die folgenden Zeilen enthalten sein:

point meta min=...,
point meta max=...,

Mit den Punkten Ihre Werte. Dies begrenzt die Farben Ihrer Farbkarte. Diese beiden Linien müssen entfernt werden. Nachdem dies getan wurde, sollte bereits ein Diagramm mit den richtigen Farbwerten erstellt werden, aber die Farbbalkendefinition wird immer noch falsch sein. Um dies zu beheben, folgt der nächste Codeblock

colormap={mymap}{[1pt] ...}

muss nach platziert werden

colormap={patchmap}{[1pt] ...}

Dadurch wird die Farbleiste repariert. Die Tickwerte der Farbleiste werden jedoch immer noch falsch sein. Dies kann manuell behoben werden, indem Sie Folgendes verwenden:

colorbar style={        
    ytick={...},
    yticklabels={...}
    }

Wenn etwas nicht ganz klar ist, kann ich die Änderungen in Ihrer Datei vornehmen.

verwandte Informationen