Exporting a figure with an opaque legend box but no visible edge

5 ビュー (過去 30 日間)
Thomas Sykes
Thomas Sykes 2019 年 4 月 11 日
コメント済み: Thomas Sykes 2019 年 4 月 11 日
I want to make a figure whose legend has no visible border (so I set the legend edge colour to be white), but has an opaque background (so I do not turn the legend box off). Using the following code I can achieve this:
% Generate some data to plot
fakeXData = linspace(0,2*pi,100);
fakeYData1 = sin(fakeXData);
fakeYData2 = cos(fakeXData);
% Plot data
clf
plot(fakeXData, fakeYData1, 'r-', 'LineWidth', 2);
hold on
plot(fakeXData, fakeYData2, 'b-', 'LineWidth', 2);
% Legend
Lgd = legend({'Sine Curve','Cosine Curve'});
set(Lgd,'EdgeColor','white');
This successfully produces the figure I would like, as below:
matlabQ-window.png
I would then like to export the figure with my specified high resolution (i've used a low quality here for the purpose of uploading). To do this I use the following print command, since saveas outputs with screen resolution:
% Save image
print(gcf,'image','-dpng','-r600');
The figure produced is shown below, where notice the legend's box is back:
image.png
If I use saveas(gcf,'image.png') then I have the same issue (and can't control the dpi).
On the other hand, if I use file > saveas the figure is exported properly.
Thanks in advance for any advice on this.
  2 件のコメント
Thomas Sykes
Thomas Sykes 2019 年 4 月 11 日
編集済み: Thomas Sykes 2019 年 4 月 11 日
I should note this issue also occurs on R2017a (the above graphs came from R2018a), either on Linux or Windows.

サインインしてコメントする。

採用された回答

Brendan Hamm
Brendan Hamm 2019 年 4 月 11 日
You can modify this by setting the EdgeColor to none.
set(Lgd,'EdgeColor','none');
  1 件のコメント
Thomas Sykes
Thomas Sykes 2019 年 4 月 11 日
Thanks, I didn't think of this - this works.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLegend についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by