Matlab2Tikz カラーバー / カラーマップの問題

Matlab2Tikz カラーバー / カラーマップの問題

Nico Schlömer による matlab2tikz スクリプトの使用でいくつか問題が発生しました。Matlab で、多数のパッチを含む 3D プロットを作成しました。一部のスカラー値は、ジェット カラーマップを使用して強調表示されています (添付の *.png ファイルを参照)。

Matlab図

次に、matlab2tikz('Test6.tex')を呼び出して、この図をtikzpictureに変換しました。Matlabは情報を出力しました。

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

かなり巨大なtikzファイルをコンパイルする

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

そして

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

pdflatex を使用すると、この結果が生成されます (対応する pdf のスクリーンショット)

[結果の出力[2]

カラーマップとカラーバーはどちらも、明らかに元のプロットとはまったく異なります。この問題の解決を手伝ってくれる人はいませんか?

答え1

私も同じ問題を経験しました。matlab2tikz.m ファイルのカラーマップの生成にエラーがあると思います。Test6.tex ファイルでいくつか変更する必要があります。

tex ファイルには次の行が含まれている必要があります。

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

点の上に値があります。これにより、カラーマップの色が制限されます。これらの2つの行を削除する必要があります。これを行うと、正しい色の値でプロットが生成されますが、カラーバーの定義はまだ間違っています。これを修正するには、次のコードブロックを使用します。

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

後に置く必要がある

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

これにより、カラーバーが修正されます。ただし、カラーバーの目盛りの値は依然としてオフになります。これは、次のコマンドを使用して手動で修正できます。

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

完全に明確でない場合は、ファイルに変更を加えることができます。

関連情報