Possible to use fanplot in a GUI? (SOLVED)

Is it possible to use the fanplot graph in a GUI?
I tried the following code but it opens a new graph window.
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
axesHandle= findobj(gcf,'Tag','axes1');
[hist, proj] = get_data(1000); %get historical data + 1000 simulations
axesHandle = fanplot(hist,proj);

4 commentaires

As an aside to my answer below...
You should just be able to use
handles.axes1
by the way instead of
findobj(gcf,'Tag','axes1');
It is the more usual (and efficient I would assume, not having to search for a graphics object that you can just go to directly) way to refer to axes in a GUIDE GUI
Found it! The fanplot.m has the statement
h = figure;
Ended up making a hybrid between fanplot.m and fanChart.m which works great! Thanks for your answers!
Annalaura
Annalaura le 11 Oct 2017
Hi! I have the same problem! Can you maybe share the hybrid you created? would be very helpful! =) Thanks!
You can open the fanplot.m and modify the statement "h = figure" in "h = gcf" (it will use the current figure for the plot, instead of opening an additional figure). You will not be able to save the modified fanplot.m, so just copy all the function and paste it on a new m-file. I saved it as fanplot2 and added it to my matlab path, so i can use it whenever i want. With this little modification you can do useful things like putting your fan charts in subplots! In the same way you can disable the automatic grid, ylabel and title...

Connectez-vous pour commenter.

Réponses (2)

Adam
Adam le 5 Avr 2016
I don't have the Financial Toolbox so I can't test this out, but does
fanplot( hist, proj, 'parent', axesHandle );
work?
Orion
Orion le 5 Avr 2016
Hi,
I don't know this function (don't have the associated toolbox), but for what I see in the doc, you can do it.
First, check the HandleVisibility property of your figure. it should be set to callback.
Then, ckeck that your axe do have the tag axes1.
Finally, you can plot your data in the axe you want using the syntax
fanplot(hist,proj,'Parent',axesHandle);
check that axeshandle is not empty (put a breakpoint in your code at this line)

1 commentaire

Unfortunately this doesn't work. The fanplot function doesn't allow other input arguments.
Error using fanplot
Too many input arguments.
Error in FanPlotUI>pushbutton1_Callback (line 137)
fanplot(hist, proj, 'Parent', axesHandle);

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange

Produits

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by