gradient of bubble colors in a bubble chart
14 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I want to create a bubblechart with three different bubble colors.
One group of bubbles is red, the second group is blue, and the color of the third group should be a mixture of red and blue. For instance, the left half of the bubble (circle) is red and the right half is blue. Or even better, a continuous trend from left to right.
Is there a way to do this?
0 Commenti
Risposte (1)
Cameron
il 14 Mar 2023
I'm not sure what you mean by "continuous trend from left to right". Can you post an image of what you're looking for? This was what I thought you meant.
x = 1:30;
y = rand(1,length(x));
sz = rand(1,length(x));
%get color gradient from https://www.mathworks.com/matlabcentral/fileexchange/25536-red-blue-colormap
m = length(sz);
if (mod(m,2) == 0)
% From [0 0 1] to [1 1 1], then [1 1 1] to [1 0 0];
m1 = m*0.5;
r = (0:m1-1)'/max(m1-1,1);
g = r;
r = [r; ones(m1,1)];
g = [g; flipud(g)];
b = flipud(r);
else
% From [0 0 1] to [1 1 1] to [1 0 0];
m1 = floor(m*0.5);
r = (0:m1-1)'/max(m1,1);
g = r;
r = [r; ones(m1+1,1)];
g = [g; 1; flipud(g)];
b = flipud(r);
end
c = [r g b];
t = tiledlayout(1,1);
nexttile
b = bubblechart(x,y,sz,c,'MarkerEdgeColor','k');
colormap(c)
colorbar
blgd = bubblelegend('Population');
lgd = legend('My data');
blgd.Layout.Tile = 'east';
lgd.Layout.Tile = 'east';
Vedere anche
Categorie
Scopri di più su Data Distribution Plots 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!