<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/240294</link>
    <title>MATLAB Central Newsreader - GUI - plotyy and legends depending on selected checkboxes</title>
    <description>Feed for thread: GUI - plotyy and legends depending on selected checkboxes</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Tue, 02 Dec 2008 18:54:02 -0500</pubDate>
      <title>GUI - plotyy and legends depending on selected checkboxes</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/240294#614526</link>
      <author>Linda </author>
      <description>Hi&lt;br&gt;
I&amp;#8217;ve made a GUI, where I have two radiobuttons representing a category of data. If one of these radiobuttons is selected (only one can be selected at a time), some checkboxes will be showed. These checkboxes each represent dataset (data1, data2, data3, data4). With help from some of you I&amp;#8217;m now able to plot the different dataset on the same axes depending on which checkboxes are selected.&lt;br&gt;
&lt;br&gt;
This means that when radiobutton1 is selected, four different plots can be made, and the same is the case for radiobutton2&lt;br&gt;
I have two questions:&lt;br&gt;
- I&amp;#8217;ve tried to make legends to represent each dataset in the same way like the plots below are defined, but can only show one at a time. How do I show several legends in one plot?&lt;br&gt;
&lt;br&gt;
- The dataset connected with radiobutton2 have two different units, i.e. dataset1_rb2 and dataset2_rb2 have the same unit, while dataset3_rb2 and dataset4_rb2 have another unit. Therefore I would like to be able to make two y-axes. But the problem is that the dataset connected to radiobutton1 has a third unit. So I need to make one set of axes for radiobutton1 and another set for radiobutton2 (with two different y-axes).&lt;br&gt;
I&amp;#8217;ve tried using plotyy for only radiobutton2, but the result is that if I first select radiobutton2 (and plot something) before selecting radiobutton1, nothing is plotted.&lt;br&gt;
&lt;br&gt;
Thank you for reading this. Hope you can give me some ideas of how to do it.&lt;br&gt;
/Linda&lt;br&gt;
&lt;br&gt;
I&amp;#8217;ve made an Update pushbutton with the callback:&lt;br&gt;
&lt;br&gt;
%Previous plot is set to visible off&lt;br&gt;
set(findobj('tag','dataset1_rb1'),'Visible','off');&lt;br&gt;
set(findobj('tag','dataset2_rb1'),'Visible','off');&lt;br&gt;
&amp;#8230;&lt;br&gt;
set(findobj('tag','dataset1_rb2'),'Visible','off');&lt;br&gt;
set(findobj('tag','dataset2_rb2'),'Visible','off');&lt;br&gt;
etc. &amp;#8230;&lt;br&gt;
&lt;br&gt;
%For radiobutton1&lt;br&gt;
if get(radiobutton1,'Value') == 1&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;plotDataset1_rb1 = plot(xdata1_rb1, ydata1_rb1,'bx-');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;hold on;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set(plotDataset1_rb1, 'tag','dataset1_rb1','Visible','off');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stateData1_rb1 = {'off','on'};&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;defineStateData1_rb1 = stateData1_rb1{1+get(checkbox1_rb1, 'Value')};&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set(findobj('tag','dataset1_rb1'),'Visible',defineStateData1_rb1);&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;plotDataset2_rb1 = plot(xdata2_rb1, ydata2_rb1,'gx-');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;hold on;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set(plotDataset2_rb1, 'tag','dataset2_rb1','Visible','off');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stateData2_rb1 = {'off','on'};&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;defineStateData2_rb1 = stateData2_rb1{1+get(checkbox2_rb1, 'Value')};&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set(findobj('tag','dataset2_rb1'),'Visible',defineStateData2_rb1);&lt;br&gt;
&lt;br&gt;
etc. &amp;#8230;&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
%For radiobutton2&lt;br&gt;
if get(radiobutton2,'Value') == 1&lt;br&gt;
&lt;br&gt;
if get(checkbox1_rb2,'Value') == 1 || get(checkbox2_rb2,'Value') == 1&lt;br&gt;
&lt;br&gt;
plotDataset1_rb2 = stairs(xdata1_rb2,ydata1_rb2,'b-');&lt;br&gt;
hold on;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
set(plotDataset1_rb2, 'tag','dataset1_rb2','Visible','off');&lt;br&gt;
stateData1_rb2 = {'off','on'};&lt;br&gt;
defineStateData1_rb2 = stateData1_rb2{1+get(checkbox1_rb2, 'Value')};&lt;br&gt;
set(findobj('tag','dataset1_rb2'),'Visible',defineState1_rb2);&lt;br&gt;
&lt;br&gt;
plotDataset2_rb2 = stairs(xdata2_rb2,ydata2_rb2,'r-');&lt;br&gt;
hold on;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
set(plotDataset2_rb2, 'tag','dataset2_rb2','Visible','off');&lt;br&gt;
stateData2_rb2 = {'off','on'};&lt;br&gt;
defineStateData2_rb2 = stateData2_rb2{1+get(checkbox2_rb2, 'Value')};&lt;br&gt;
set(findobj('tag','dataset2_rb2'),'Visible',defineState2_rb2);&lt;br&gt;
&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
if get(checkbox3_rb2,'Value') == 1 || get(checkbox4_rb2,'Value') == 1&lt;br&gt;
&lt;br&gt;
plotDataset3_rb2 = line(xdata3_rb2,ydata3_rb2, 'Color', 'm');&lt;br&gt;
hold on;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
set(plotDataset3_rb2, 'tag','dataset3_rb2','Visible','off');&lt;br&gt;
stateData3_rb2 = {'off','on'};&lt;br&gt;
defineStateData3_rb2 = stateData3_rb2{1+get(checkbox3_rb2, 'Value')};&lt;br&gt;
set(findobj('tag','dataset3_rb2'),'Visible',defineState3_rb2);&lt;br&gt;
&lt;br&gt;
plotDataset4_rb2 = line(xdata4_rb2,ydata4_rb2, 'Color', 'y');&lt;br&gt;
hold on;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
set(plotDataset4_rb2, 'tag','dataset4_rb2','Visible','off');&lt;br&gt;
stateData4_rb2 = {'off','on'};&lt;br&gt;
defineStateData4_rb2 = stateData4_rb2{1+get(checkbox4_rb2, 'Value')};&lt;br&gt;
set(findobj('tag','dataset4_rb2'),'Visible',defineState4_rb2);&lt;br&gt;
&lt;br&gt;
end</description>
    </item>
  </channel>
</rss>

