Why does Tiledlayout return error when using a figure with datetime as x-axis?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I am trying to use tiledlayout to display several figures. The figures use numbers (double) on the y-axis and dates (datetime) on the x-axis. When I run my code, I recieve the following error (repeated four times).
"Warning: Error updating Line.
Conversion to double from datetime is not possible."
Matlab displays the figure I opened in a seperate window; however, the tiltedlayout figure displays an empty figure
The code I am running is posted below:
open([pwd '\ClusterData\SlopeFigs\m10d30rSlp.fig']);
gh1 = gca;
figure (88)
t = tiledlayout(2,2);
nexttile
copyobj(gh1.Children,gca)
I tried an example figure from MATLAB with number on both axes and it works fine. Therefore, I believe the issue is related to datetime values not being supported in tiledlayout. Can anyone confirm?
Thanks,
Allon
0 commentaires
Réponse acceptée
Voss
le 5 Sep 2024
datetime x-axis is supported in tiledlayout. Here's an example:
x = datetime(2024,9,3):hours(1):datetime(2024,9,5);
y = rand(size(x));
figure
tiledlayout(2,2)
nexttile
plot(x,y)
gh1 = gca; % go ahead and store the axes handle
The problem is trying to copy objects from an axes whose XAxis is a DatetimeRuler to an axes whose XAxis is a NumericRuler (which the new axes's XAxis is by default). This is reproducing the problem:
figure
t = tiledlayout(2,2);
nexttile
copyobj(gh1.Children,gca)
A workaround is to plot something with datetime x-values in the new axes first (making that XAxis a DatetimeRuler), then copy the stuff, then delete what you plotted first. Example:
figure
t = tiledlayout(2,2);
nexttile
line_to_delete = plot(datetime(0,0,0),NaN);
copyobj(gh1.Children,gca)
delete(line_to_delete)
There may be a better solution, but this seems to work ok.
3 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Graphics Object Programming dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!