an error in displaying a plot from scatter3?
Afficher commentaires plus anciens
I'm trying to make a movie of some data using scatter3. I found particular data that seems to break my plotting. Here is my minimal working example:
% Define the troublesome data
LocalP01TimesAbbrev= [0.985141016248456 0.983832758385265 0.982463398432200; ...
0.014564614437997 0.015818194233200 0.017125250702120; ...
0.014473309566424 0.015711762527657 0.017002051251182];
LocalP10TimesAbbrev = [ 0.014858983751545 0.016167241614735 0.017536601567800; ...
0.985435385562003 0.984181805766800 0.982874749297880; ...
0.985526690433576 0.984288237472344 0.982997948748818];
ProbAlphaTimesAbbrev = [ 0.173075907671362 0.170950942612534 0.168765455538531; ...
0.263402471915559 0.260491423443426 0.257493774027376; ...
0.432533162447323 0.427194569248721 0.421701733201043];
LocalPhi0001TimesAbbrev= [ 0.467221621294768 0.486636417067630 0.506044435239474; ...
0.991724460901591 -0.987830595863805 -0.967391124238550; ...
0.968975981089195 0.988486840582777 -0.992006142330032];
LocalPhi1001TimesAbbrev = [ 1.455931021018426 1.454016681105492 1.452092703739240;...
0.533792771964366 -1.464742280598276 -1.463270085144922 ; ...
0.501499482572618 0.501561621075348 -1.498376287448080];
% define figure for movie
figure('InnerPosition',[488 338 889 420]);
for tstep=1:3
% Make scatter plot movie frames
CircleSize = 10000*ProbAlphaTimesAbbrev(:,tstep); CircleSize(CircleSize<10^-15)=10^-15;
CircleColor = 100*ProbAlphaTimesAbbrev(:,tstep); CircleColor(CircleColor<10^-15) = 10^-15;
scatter3(LocalP01TimesAbbrev(:,tstep),LocalP10TimesAbbrev(:,tstep),LocalPhi1001TimesAbbrev(:,tstep),CircleSize,CircleColor,'filled');
xlim([0,1]); xlabel('p_{01}'); ylim([0,1]); ylabel('p_{10}'); zlim([-1,1]); zlabel('(\phi_{10}-\phi_{01})/\pi, phase between 10 and 01 states')
title(sprintf('Conditional state of sites 1,2, \\surd{p_{00}}e^{i(\\phi_{00}-\\phi_{01})}|00> +\\surd{p_{01}}|01> + e^{i(\\phi_{10}-\\phi_{01})}\\surd{p_{10}}|10>+ e^{i(\\phi_{11}-\\phi_{01})}\\surd{p_{11}}|11>, time= %d.',tstep));
drawnow
Mymovie(tstep) = getframe(gcf);
filename2 = sprintf('TestScatterPlot.gif');
exportgraphics(gca,filename2,"Append",true);
end
% The ending plot has no data points on it when I run the above loop.
% However making a new figure and plotting the same data does show data points.
figure; scatter3(LocalP01TimesAbbrev(:,tstep),LocalP10TimesAbbrev(:,tstep),LocalPhi1001TimesAbbrev(:,tstep),CircleSize,CircleColor,'filled');
xlim([0,1]); xlabel('p_{01}'); ylim([0,1]); ylabel('p_{10}'); zlim([-1,1]); zlabel('(\phi_{10}-\phi_{01})/\pi, phase between 10 and 01 states')
title(sprintf('Conditional state of sites 1,2, \\surd{p_{00}}e^{i(\\phi_{00}-\\phi_{01})}|00> +\\surd{p_{01}}|01> + e^{i(\\phi_{10}-\\phi_{01})}\\surd{p_{10}}|10>+ e^{i(\\phi_{11}-\\phi_{01})}\\surd{p_{11}}|11>, time= %0.3f.',tstep));

1 commentaire
Walter Roberson
le 11 Sep 2023
It works for me when I try it on my Mac (R2023b prerelease at least)
Historically, imwrite() had a problem when you specified 'WriteMode', 'append' for a fiie that did not exist. However, you are not using imwrite()
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Graphics Performance dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!