Is plotyy producing jitter in the x-axis, or is it my code?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I've got a strange problem when I use the plotyy function in the following code;
% Plot Altitude and Versions with Time
figure('Name','Altitude and Versions','numbertitle','off');
[AX,H1,H2] = plotyy(State_Time, Alt, State_Time, Version, 'semilogy', 'plot');
% Add the title, legend, X-axis and Y-axes labels
title(Event_Title,'FontSize', 20);
legend(Source,'Location','NortheastOutside');
axes(AX(1));
ylabel('Altitude (m)','Fontsize', 20,'fontweight','b');
set(gca, 'XTickLabel',num2str(get(gca,'XTick')','%d'));
xlabel('UTC (Sec)','Fontsize', 20,'fontweight','b');
axes(AX(2));
ylabel('SV ID','Fontsize', 20,'fontweight','b');
% Set the markers, markersizes, and linestyles
set(H1,'Marker','o','MarkerSize',15);
set(H2,'Marker','+','MarkerSize',15);
set(H2,'LineStyle','none');
When the figure appears, it is as I would expect - with the exception of 2 items;
1. The x-axis UTC times have jitter in them. Think of the following line of text;
58570 58572 58574 58576 58578 58580
being overwritten with the following line of text;
5.8570 5.8572 5.8574 5.8576 5.8578 5.8580 x 10^4
The decimal notation is preferred. This is the first time I've used plotyy and I'm not sure if I'm violating some rule pertaining to the function itself.
2. I can seem to control the values of the 2nd y-axis (Version). I want only whole numbers to populate this axis. Currently, it is being autoscaled by MATLAB and I'm not sure how to get around it.
Any ideas?
1 comentario
dpb
el 4 de Sept. de 2016
Seems peculiar there was an edit after almost 3 yr of inactivity???
Is there some question unresolved here or just a cosmetic change, Brad?
Respuesta aceptada
dpb
el 25 de Sept. de 2013
Editada: dpb
el 25 de Sept. de 2013
It's your code... :)
[AX,H1,H2] = plotyy(State_Time, Alt, State_Time, SV_ID, 'semilogy', 'plot');
axes(AX(1));
set(gca, 'XTickLabel',num2str(get(gca,'XTick')','%d'));
The above writes the tick labels on the LH x-axis but there's no similar statement for the RH axes object. plotyy is two completely independent axes that just are overlaid on top of each other.
There has been much discussion before on why TMW doesn't automagically hide the RH axis x-ticks so there aren't two competing sets visible but there are some disadvantages to that by itself, too.
To solve your problem either
a) set both the same way
set(AX, 'XTickLabel',num2str(get(gca,'XTick')','%d'));
or b) hide the RH ticks entirely...
set(AX(2),'xtick',[])
in which case your previous code will have the desired appearances. All in all, the best solution is probably to use the a) form almost exclusively as it will keep the two in synch. This is particularly important if you decide to do something like zoom in on an axis; then the two won't coincide at all. The alternative way to do the latter is linkaxes but it only handles the range limits, not all the rest of the properties.
4 comentarios
Image Analyst
el 26 de Sept. de 2013
I worked on a problem a month or two ago where a guy had jittery glitches in his plot. He changed renderers and said that fixed the problem.
dpb
el 26 de Sept. de 2013
Editada: dpb
el 26 de Sept. de 2013
That does happen on occasion, indeed...I've seen it rarely but it does/can happen w/ the double axes wherein for some reason the roundoff isn't identical for the two, apparently...I've always figured that it when it happens it's owing to the one being left the other right on position that ends up making for slightly different computations of position, etc., that once in a great while do fall into the FP roundoff pit...but that's purely conjecture.
Más respuestas (0)
Ver también
Categorías
Más información sobre Two y-axis en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!