How to save the scatter plot with and without transparency
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Turbulence Analysis
el 4 de Mzo. de 2023
Comentada: Turbulence Analysis
el 4 de Mzo. de 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 comentarios
Respuesta aceptada
Star Strider
el 4 de Mzo. de 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 comentarios
Star Strider
el 4 de Mzo. de 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.
Más respuestas (1)
Sulaymon Eshkabilov
el 4 de Mzo. de 2023
Editada: Sulaymon Eshkabilov
el 4 de Mzo. de 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 comentarios
Ver también
Categorías
Más información sobre Printing and Saving en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!