1

パッチの色を手動で設定した後、ベクトル PDF プロットを作成しようとすると問題が発生します。

set(...) の呼び出しを使用してパッチの面と頂点の色を設定し、パッチの ' FaceVertexCData ' プロパティを設定した後、'savefig' と 'saveas' の両方によって生成された PDF 出力はラスタライズされ、ベクターではなくなります。フォーマット。これは、「FaceVertexCData」が変更されていない場合には発生しません。

例えば、

clear all; close all;
h = bar([1 2 3 ; 3 2 1 ; 3 4 4]);
saveas(gcf, 'barplot.pdf', 'pdf');
savefig('barplot.pdf', 'pdf');

プロットの完全に細かいベクトル化された PDF を生成します。

一方、次のコードは見苦しいベクトル化された PDF プロットを生成します。

clear all; close all;
h = bar([1 2 3 ; 3 2 1 ; 3 4 4]);
ch = get(h,'children');
set(ch{1},'FaceVertexCData',[1 0 0 ; 0 1 0; 0 0 1]);
set(ch{2},'FaceVertexCData',[1 0 0 ; 0 1 0; 0 0 1]);
set(ch{3},'FaceVertexCData',[1 0 0 ; 0 1 0; 0 0 1]);
saveas(gcf, 'barplot_savefig_FaceVertexCData.pdf', 'pdf');
savefig('barplot_saveas_FaceVertexCData.pdf', 'pdf');

問題の原因は何ですか? これはどのように解決できますか?どんなヒントでも大歓迎です。

どうもありがとう。

編集:MATLABバージョン:OS X上の8.0.0.783(R2012b)

4

1 に答える 1

0

私は問題を解決しました。

後世のために:

これを回避するには、RGB カラーを直接指定するのではなく、カラー マップで定義してからインデックスを作成します。

次のコードは問題を解決します。

clear all; close all;

% Make the bar plot
h = bar([1 2 3 ; 3 2 1 ; 3 4 4]);
ch = get(h,'children');

% Define the colors in a color map
cMap = [1 0 0 ; 0 1 0; 0 0 1];
colormap(cMap);

% Now set the FaceVertexCData by indexing into the colormap
set(ch{1},'CDataMapping', 'direct', 'FaceVertexCData',[1 2 3]');
set(ch{2},'CDataMapping', 'direct', 'FaceVertexCData',[1 2 3]');
set(ch{3},'CDataMapping', 'direct', 'FaceVertexCData',[1 2 3]');

% Save out, this will produce vectorized PDF
saveas(gcf, 'barplot_savefig_FaceVertexCData.pdf', 'pdf');
savefig('barplot_saveas_FaceVertexCData.pdf', 'pdf');

これに関する次の情報が関連しています。

「RGB カラー データはペインター モードではまだサポートされていません - 面または頂点の色がカラーマップへのインデックスではなく RGB カラーとして指定されているパッチ オブジェクトを含む Figure をエクスポートしようとすると、これは警告として表示されます。ペインター レンダラー (ベクトル出力のデフォルト レンダラー) を使用する. この問題は、たとえば pcolor を使用する場合に発生する可能性があります. これは MATLAB のペインター レンダラーの問題であり、印刷にも影響します.推奨される回避策は、RGB を使用してパッチを着色することを避けることです. まず、Figure のカラーマップで色を使用してみてください - 必要に応じてカラーマップを変更してください. pcolor を使用している場合は、(ファイル交換で) uimagesc を使用してみてください代わりは。"

( https://sites.google.com/site/oliverwoodford/software/export_fig、2013 年 6 月 11 日にアクセス)。

于 2013-06-12T08:26:26.850 に答える