How to save the scatter plot with and without transparency
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Turbulence Analysis
il 4 Mar 2023
Commentato: Turbulence Analysis
il 4 Mar 2023
Hi,
I need to save the scatter graph plotted with the same data but one with transparency applied and the other without transparency. Although the below code saves both the figures, however, gca styles are only applied on the second plot (i.e. the one with transparency)
a=figure;
scatter(F2(:,2),F3(:,3),0.1,F4(:,5));
b=figure;
scatter(F2(:,2),F3(:,3),0.1,F4(:,5),'MarkerFaceAlpha',0.2,'MarkerEdgeAlpha',0.2);
set(gca, 'FontSize', 10)
set(gca,'fontname','Arial')
set(gca, 'fontweight', 'bold')
saveas(a,'X_1.emf')
saveas(b,'X_2.emf')
0 Commenti
Risposta accettata
Star Strider
il 4 Mar 2023
The gca function (of course) is ‘get current axes’, and it does exactly that. One option is to save an axes reference in each scatter call, and the other is to refer to the plot Parent. Either will work.
One approach —
F2 = randi(9,50,5); % Create Data
F3 = randi(9,50,5); % Create Data
F4 = randi(9,50,5); % Create Data
a=figure;
scatter(F2(:,2),F3(:,3),10,F4(:,5));
Axa = gca;
b=figure;
scatter(F2(:,2),F3(:,3),10,F4(:,5),'MarkerFaceAlpha',0.2,'MarkerEdgeAlpha',0.2);
Axb = gca;
set([Axa,Axb], 'FontSize', 10)
set([Axa,Axb],'fontname','Arial')
set([Axa,Axb], 'fontweight', 'bold')
% saveas(a,'X_1.emf')
% saveas(b,'X_2.emf')
And with that change, the set calls apply to both of them.
The saveas calls threw an error because .emf is not a recognised extension, and they threw an error that prevented the code from running, so I commented them out so it would.
.
5 Commenti
Star Strider
il 4 Mar 2023
The same colorbar could work for multiple axes, however it would have to be defined separately for each of them, according to the target argument documentation. Having separate handles to each of them makes it easier to change both of their properties with a single set call. Otherwise, the set call would likely have to be repeated for each colorbar separately in each figure. It likely does not matter unless you want to do somethng like that.
Più risposte (1)
Sulaymon Eshkabilov
il 4 Mar 2023
Modificato: Sulaymon Eshkabilov
il 4 Mar 2023
Use exportgraphics() and also, note where the set() command for figure a and b is used and where exportgraphics() is used, e.g.:
F2 = repmat((1:10)', 1, 5);
F3 = F2.^2+2*F2-5;
F4 = sqrt(F3);
a = figure;
surf(F3)
set(gca, 'FontSize', 10)
set(gca,'fontname','Courier')
set(gca, 'fontweight', 'bold')
aX=gca;
aX.XColor='k';
aX.YColor='g';
aX.ZColor='m';
exportgraphics(a, 'a.emf', 'ContentType', 'image', 'BackGroundColor', 'white'); % White background
b=figure;
surfc(abs(F4))
set(gca, 'FontSize', 10)
set(gca,'fontname','Arial')
set(gca, 'fontweight', 'bold')
bX=gca;
bX.XColor='r';
bX.YColor='g';
bX.ZColor='b';
xlabel('x', 'Color','r')
ylabel('y', 'Color','g')
zlabel('z', 'Color','b')
exportgraphics(b, 'b.emf', 'ContentType', 'image', 'BackgroundColor', 'yellow'); % yellow background
0 Commenti
Vedere anche
Categorie
Scopri di più su Printing and Saving in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!