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

18 ビュー (過去 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 件のコメント

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

採用された回答

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 件)

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by