2017-05-22 10 views
2

Matlabからpdf形式で保存されたFigure上のカラーバーを反転したい。私は自分の画面上でカラーバーを反転することができますが、私の人物をpdf形式で印刷すると、カラーバーは再び正常な方向に戻されます。matlabで反転カラーバーを印刷するには?

最小例:export_figを使用して

figure(1) 
colormap(parula(100)) 
c = colorbar('direction','reverse'); 
print(1,'-dpdf','graphs\test_colorbar.pdf',sprintf('-r%d',150)) 

は助けにならない - それはカラーマップを反転させそしてダニが中間値の周りに対称ではない場合は動作しませんラベルの順序を、反転カラーバーexport_figときは逆に出力しますカラーバーのカラーバーを反転し、ラベルが解決しない理由を示す

最小例:export_figによって保存された

tick_array = 0:0.3:1; 

figure(1) 
colormap(parula(100)) 
colorbar('direction','reverse','Ticks',tick_array) 
export_fig('graphs\test_colorbar.pdf','-pdf') 

tick_labels = strtrim(cellstr(num2str(flip(tick_array)'))); 

figure(2) 
colormap(flipud(parula(100))) 
colorbar('Ticks',tick_array,'Ticklabels',tick_labels) 

図は、(間違っている)図2のように見えます。

答えて

4

代わりにその方向を制御するパラメータの、マップ自体を逆にしてみてください:特に出版品質の数値のため、

figure(1) 
c = parula(100); 
colormap(flipud(c)); 
colorbar; 
print(1,'-dpdf','graphs\test_colorbar.pdf',sprintf('-r%d',150)) 

は私も本当にMATLABで画像を保存するためのexport_figを示唆

+0

私ができます回避策として、カラーマップ(およびラベル)を逆にします。しかし、それはなぜFigureを印刷するのが画面上と反対方向にカラーバーを持つのか説明していません。また、その修正は、カラーバーが私がプロットした最後のものである場合にのみ機能する(私は思う)。 – tannoreth

+1

@tannoreth答えは "print'が嫌だから"、残念ながら。これが、 'export_fig'がMATLABのためにダウンロードされたN1のファイルである理由です。 'print'は基本的なことで動作しますが、非常に制限されており、エラーがたくさんあります –

+0

残念ながら、このグラフはラベルが対称でないグラフでは機能しません(例えば、カラーマップが0から1.2、ラベルは0から1までしかありません)。私はexport-figをチェックします。 – tannoreth

関連する問題