Transparency in scatter plot

24 次查看(过去 30 天)
Felipe Dicker
Felipe Dicker 2024-3-1
Say I have two vectors A and B and would like to have a scatter plot of them, however the transparency of each marker must vary according to corresponding values in a third vector C. The transparency for the smallest value of C should be 50% and for the largest value of C should be fully opaque.
Everything I've tried has rendered all points fully transparent as if they are not being plotted at all. Thanks in advance.

回答(2 个)

Walter Roberson
Walter Roberson 2024-3-1
scatter(VectorOfX, VectorOfY, VectorOfPointSizes, VectorOfColor, ...
'MarkerFaceColor', 'flat', 'MarkerEdgeColor', 'flat', ...
'AlphaData', VectorOfAlpha)
  1 个评论
Felipe Dicker
Felipe Dicker 2024-3-1
编辑:Felipe Dicker 2024-3-1
This yields them fully opaque. So far I have
ax1 = nexttile(t_lay);scatter(ax1,RPM(torque>0&power>0),torque(torque>0&power>0),15,'MarkerEdgeColor',[83 40 191]/255/2,'MarkerFaceColor',...
[83 40 191]/255,'LineWidth',1.0,"AlphaData",TPS/100);xlabel(ax1,"RPM");ylabel(ax1,"Wheel Torque (Nm)");

请先登录,再进行评论。


Star Strider
Star Strider 2024-3-1
编辑:Star Strider 2024-3-1
It would help to have representative data. I suspect the vector you are using as ‘C’ has very low positive values (perhaps on the order of 0.1 to 0.3 or something similar).
The documentation stares that the transparency vector has to be scaled to be between 0 and 1. This uses the rescale function to accomplish that, creating ‘Cr’ (‘C’ rescaled).
Try this —
N = 50;
A = randn(N,1);
B = randn(N,1);
C = randn(N,1);
Cr = rescale(C,0.5,1); % Scale To Correspond To 'MarkerFaceAlpha' Rnage of (0.5,1)
figure
hs = scatter(A, B, 200, C, 'p', 'filled');
s.AlphaData = Cr;
s.MArkerFaceAlpha = 'flat';
s.MarkerEdgeAlpha = 'flat';
colormap(turbo)
colorbar
Note that ‘C’ works normally to colour the markers, and ‘Cr’ varies their transparency within the allotted range.
EDIT — Corrected typographical errors.
.

类别

Help CenterFile Exchange 中查找有关 Lighting, Transparency, and Shading 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by