我正在开发一个GUI控件MATLAB(2014a)程序,其中有一个绘图窗口,在基于contour
的绘图之上显示pcolor
- 类似的绘图。
用户发现,通过右键单击颜色栏可以更改colormap
。但是,由于pcolor
函数的内部原因,此更改仅直接影响contour
图。
我已经找到了如何从我的轴对象中获取更改的colormap
并将其应用于contour
图,但我仍然需要手动重做图。
colormap
/ axes
对象的figure
更改后是否会执行回调?
我读到了PropertyChangeCallback
,但colormap
似乎并未存储为属性。
答案 0 :(得分:1)
您无需借助未记录的功能来拦截Matlab pre-HG2中的LEFT join table_type tti on (tti.id=tAi.type_id and tti.code='in')
更改。您只需将监听器附加到属性colormap
的{{1}}事件。
作为一个简单的例子,如果你的数字已经存在,只需输入:
'PostSet'
在控制台中,每次更改'Colormap'
时都会收到一条消息。请注意,无论是否触发事件:
lh = addlistener( h.fig , 'Colormap' , 'PostSet' , @(h,e) disp('cmap changed !') )
完全更改为另一个(例如,从colormap
更改为colormap
)jet
)请注意,如果您使用hsv
,事件将不。此命令不会更改colormap(jet(5))
本身,而是更改某些颜色映射到它的方式。因此,如果您使用此命令,您的caxis
将被修改(尽管色彩图赢了)。 colormap
命令会更改当前 pcolor
的caxis
属性(不是CLim
!)。因此,如果要检测它,则必须在正确的轴上将侦听器附加到此属性。类似的东西:
axes
作为一个更加应用的例子,这是一个小演示,每当figure
发生变化时它都会做出反应。由于我不知道你计划在每次更改时对你的lh = addlistener( gca , 'CLim' , 'PostSet' , @(h,e) disp('clim changed !') )
情节做些什么,我只是修改了几个属性,只是为了表明它正在做某事。根据您的需要进行调整。
colormap