Can MATLAB plot a graph like this? (Ignore the black lines and light blue areas; I only care about the red and blue points.)

28 visualizzazioni (ultimi 30 giorni)
Hello everyone, I want to plot the image below. Please ignore the other parts; I'm mainly focused on the red and blue points. I know the scatter function can plot points of different sizes, but the issue is with the red legend next to it. Can MATLAB generate a legend like this, reflecting the size of the points? Looking forward to any responses.

Risposte (2)

Cris LaPierre
Cris LaPierre il 3 Dic 2024 alle 16:27
This is a bubble chart. You can create this in MATLAB using bubblechart
The legend isn't exactly the same, but conveys the relationship between size and value.
  3 Commenti
Cris LaPierre
Cris LaPierre circa 4 ore fa
The only way I can think to do that would be to manually create it yourself. Essentially, you'd create a second axes next to your plot and then plot the circle sizes you want positioned the way you want them.
% create dummy data
t = 0:0.1:10;
y = sin(t);
sz = (y+1)*50;
figure
scatter(t,y,sz);
ax1 = gca;
% create legend
ax2 = axes('Position',[ax1.Position(1)+ax1.Position(3)+0.005 ax1.Position(2) 0.05 ax1.Position(4)]);
scatter(ax2,0,1:100,1:100,'r')
ax2.YAxisLocation = 'right';
xticks(ax2,[])
yticks(ax2,0:20:100)
yticklabels(0:2:10)
ylabel('log_{10}Q')
Cris LaPierre
Cris LaPierre circa 4 ore fa
Here's perhaps a slightly cleaner way.
% create dummy data
t = 0:0.1:10;
y = sin(t);
sz = (y+1)*50;
tiledlayout(1,11)
nexttile([1 10])
scatter(t,y,sz);
ax = nexttile;
scatter(0,1:100,1:100,'r')
ylabel('log_{10}Q')
ax.YAxisLocation = 'right';
xticks([])
% Customimze the displayed size (may not be necessary)
yticks(0:20:100)
yticklabels(0:2:10)

Accedi per commentare.


Image Analyst
Image Analyst circa 18 ore fa
Instead of bubble chart, try scatter where you can specify the color and size of each marker.

Prodotti


Release

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by