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 vues (au cours des 30 derniers jours)
ma Jack
ma Jack le 3 Déc 2024 à 14:31
Commenté : Cris LaPierre il y a environ 4 heures
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.

Réponses (2)

Cris LaPierre
Cris LaPierre le 3 Déc 2024 à 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 commentaires
Cris LaPierre
Cris LaPierre il y a environ 2 heures
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 il y a environ 4 heures
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)

Connectez-vous pour commenter.


Image Analyst
Image Analyst il y a environ 18 heures
Instead of bubble chart, try scatter where you can specify the color and size of each marker.

Produits


Version

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by