How to speed up xline / yline ?

12 visualizzazioni (ultimi 30 giorni)
Matthias Fath
Matthias Fath il 12 Apr 2024
Risposto: Matthias Fath il 12 Apr 2024
I want to plot several xlines in a simple 2D plot at dedicated x-values. When i plot many lines (e.g.) 200 at once using xline, the response is very slow. I am passing all x-Values as a vector at once to xline. When enabling the grid with same x-spacing, it is ~ 80 times faster. Any idea how to speed up the xline command? I already tried disabling the lines transparency by setting alpha = 1, but it didn't help.
Regards,
Matthias

Risposta accettata

Manikanta Aditya
Manikanta Aditya il 12 Apr 2024
Hi,
The xline and yline functions in MATLAB are designed for convenience and ease of use, but they may not be the most efficient for plotting a large number of lines. When you’re dealing with a large number of lines, it might be more efficient to use the line or plot functions instead.
Here’s an example of how you might use the line function to plot vertical lines (similar to xline):
x_values = 1:200;
for x = x_values
line([x x], ylim);
end
This code will create a vertical line at each x-value in x_values. The ylim function is used to automatically adjust the y-coordinates of the line to the current y-axis limits.
Hope this helps, let me know.

Più risposte (1)

Matthias Fath
Matthias Fath il 12 Apr 2024
Thanks for your help. The "line" command is a bit faster. After implementing some additonal required formating a part of the speed advantage disapears. Using ylim was also slowing down a bit, but i can avoid that since i have fixed (maximum) axislimits anyway. In the end it's ~25% faster than xline in my testcases.
Regards,
Matthias

Categorie

Scopri di più su Graphics Performance in Help Center e File Exchange

Prodotti


Release

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by