Is it possible to add an axes toolbar button to the default axes toolbar?

7 visualizaciones (últimos 30 días)
Hello,
I've made a toolbar button to help with some of my data analysis. Is it possible for me to add code to my startup.m file to include this button on all default axtoolbar objects that I create, or do I have to create it manually every time?
I like this functionality, but I don't see myself manually creating the button for every plot that I make. I've also used
set(groot,'defaultFigureWindowButtonDownFcn',@highlightOnButtonDown);
to do something similar, but I really like the ability to turn the functionality on and off via the axtoolbar.
For example, the following code creates the below image:
plot(rand(5));
ax = gca;
tb = axtoolbar(ax,{'zoomin','zoomout','restoreview'});
btn = axtoolbarbtn(tb,'state');
btn.Icon = 'highlight_icon.png';
btn.Tooltip = 'Highlight Lines';
btn.ValueChangedFcn = @highlightToggle;
  2 comentarios
Mario Malic
Mario Malic el 13 de Feb. de 2023
I have never tried it, but maybe CreateFcn argument supplied to axes might do the trick.
Alexander Halbleib
Alexander Halbleib el 13 de Feb. de 2023
@Mario Malic ah! That was a brilliant idea! Unfortunately, I saw "Modifying the default axes toolbar is not supported" when I implemented it. I'm going to play around with it a little though, and see if I can figure out a workaround.
Thank you!

Iniciar sesión para comentar.

Respuesta aceptada

Alexander Halbleib
Alexander Halbleib el 13 de Feb. de 2023
@Mario Malic provided a quick solution! I was able to place this line in my startup.m file:
set(groot,'defaultAxesCreateFcn',@createHighlightToggle);
This is the the function createHighlightToggle():
function createHighlightToggle(src,~)
%CREATEHIGHLIGHTTOGGLE Add the "Highlight Lines" button to the axes toolbar
tb = axtoolbar(src,'default');
btn = axtoolbarbtn(tb,'state');
btn.Icon = 'highlight_icon.png';
btn.Tooltip = 'Highlight Lines';
btn.ValueChangedFcn = @highlightToggle;
end
That works! The only caveat is that I need to set hold to "on" or "all" - otherwise the new button toolbar is immediately overwritten with the first plotted object.

Más respuestas (0)

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by