How to display graphically

Hello
I want the conditions of an issue to be graphically displayed at each step of the program. For example, in the case of a River crossing puzzle, I want to show which people (variables) are on which side of the river at each step.
Thanks

2 Commenti

KSSV
KSSV il 22 Nov 2020
What data you have? You can display that using plot with some markers color depending on people are on which side.
lech king
lech king il 22 Nov 2020
In this case we have eight people
I considered each side an 1*8 representation
We move people according to the input received from the user
For example, if the first 2 people go from left to right, the situation will be left
001111111
The position will be on the right
11000000
How can I graphically show this situation now?

Accedi per commentare.

 Risposta accettata

Nora Khaled
Nora Khaled il 22 Nov 2020
Modificato: Nora Khaled il 22 Nov 2020
not sure this is what you had in mind ...
%Environment
envSize=4;
figure;
x=-envSize:0.1:envSize;
y=.5*sin(x);
plot(y,x,'lineWidth',10)
axis([-envSize envSize -envSize envSize]);
hold on;
%Input
left=[0 0 1 1 1 1 1];
right= [1 1 0 0 0 0 0 0];
% number of ppl
nL=sum(left);
nR=sum(right);
%random position for ppl
maxX=envSize-1;
minX=2*max(y);
maxY=envSize-1;
minY=-(envSize-1);
pL = [-(minX + (maxX-minX) .* rand(nL,1)), (minY + (maxY-minY) .* rand(nL,1))]
pR = [(minX + (maxX-minX) .* rand(nR,1)) , (minY + (maxY-minY) .* rand(nR,1))]
% plot
scatter(pL(:,1),pL(:,2),'filled','SizeData',200)
alpha(.5)
scatter(pR(:,1),pR(:,2),'filled','SizeData',200)
alpha(.5)
the output looks like this

9 Commenti

lech king
lech king il 23 Nov 2020
Thank you Thank you
This is exactly it
Thank you very much
lech king
lech king il 23 Nov 2020
Is it possible for each point to have a specific color ??
you could plot them in a loop like
for i=1:1:nL
scatter(pL(i,1),pL(i,2),'filled','SizeData',200)
alpha(.5)
end
for i=1:1:nR
scatter(pR(i,1),pR(i,2),'filled','SizeData',200)
alpha(.5)
end
in this case you will not need the alpha(.5) to change the transparency.
lech king
lech king il 23 Nov 2020
Thank you very much
Nora Khaled
Nora Khaled il 23 Nov 2020
you're welcome
lech king
lech king il 23 Nov 2020
Modificato: lech king il 23 Nov 2020
Thank you for your help
In this case, each point indicates an independent person. Is it possible that each person has a unique shape ??
For example, the first person is a triangle and the second person is a square and .......
Yes
shapes=['o' '+' 's' 'd' '.' '>' 'x' '*' '^'];
for i=1:1:nL
scatter(pL(i,1),pL(i,2),shapes(i),'SizeData',200)
alpha(.5)
end
for i=1:1:nR
scatter(pR(i,1),pR(i,2),shapes(i+nL),'SizeData',200)
alpha(.5)
end
However, in this case you can not use the property filled.
you can see all shapes avalible here:
lech king
lech king il 23 Nov 2020
That's it
Thank you very much for your kindness
Sorry, I just realized... this just control the shape of the plot but does not mean that if a circle person moved from the left to the right that person will remain a circle.
If you want to assosiated the shape with the person... try this
shapes=['o' '+' 's' 'd' '.' '>' 'x' '*' '^'];
leftcounter=1;
rightcounter=1;
for i=1:1:nL+nR
if left(i) ==1
scatter(pL(leftcounter,1),pL(leftcounter,2),shapes(i),'SizeData',200)
alpha(.5)
leftcounter=leftcounter+1;
else
scatter(pR(rightcounter,1),pR(rightcounter,2),shapes(i),'SizeData',200)
alpha(.5)
rightcounter=rightcounter+1;
end
end
hope it helps.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Graphics Objects in Centro assistenza e File Exchange

Prodotti

Release

R2020b

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by