<div dir="ltr"><div>Thanks, Kiko.</div><div>I should have noticed that the 'values' keyword had changed to the much better 'options' keyword in IPython3. </div><div><br></div><div>Got a follow up question if you don't mind. When I use the same example, but with RadioButtons rather than a Dropdown widget, the radio buttons overlap with the descriptor (Line Color:). Any way to specify the distance between the descriptor and radio buttons? I think the default should probably not overlap the two. Here's an example:</div><div><br></div><div><div>w = widgets.RadioButtons(</div><div>    options=['b', 'r', 'g'],</div><div>    value='r',</div><div>    description='Line Color:'</div><div>)</div><div>def plot_line(c='b'):</div><div>    plt.figure()</div><div>    plt.plot([0,1],color=c)</div><div>interact(plot_line, c = w);</div></div><div><br></div><div><br></div><div><br></div>From: Kiko <<a href="mailto:kikocorreoso@gmail.com">kikocorreoso@gmail.com</a>><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Subject: Re: [IPython-dev] How to set state of widget in IPython3?<br>
To: IPython developers list <<a href="mailto:ipython-dev@scipy.org">ipython-dev@scipy.org</a>><br>
Message-ID:<br>
        <<a href="mailto:CAB-sx61bM7o%2BSU5jETDGhco9O1vt3EMvO6_ThR5WPvrmzO6snA@mail.gmail.com">CAB-sx61bM7o+SU5jETDGhco9O1vt3EMvO6_ThR5WPvrmzO6snA@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
2015-03-24 12:51 GMT+01:00 Mark Bakker <<a href="mailto:markbak@gmail.com">markbak@gmail.com</a>>:<br>
<br>
> Hello list. I am trying to set the state of a DropdownWidget (Or<br>
> RadioButton) in IPython3. You didn't have to do that in the past, but even<br>
> if I specify the value, it gives me an error. Simple example:<br>
><br>
> This works:<br>
><br>
> def plot_line(c='b'):<br>
>     plt.plot([0,1],color=c)<br>
> interact(plot_line,c=['b','r','g']);<br>
><br>
> This works in IPython2, but not in IPython3. In IPython3 it passes c=None<br>
> to the function on initialization.<br>
><br>
> def plot_line(c='b'):<br>
>     plt.plot([0,1],color=c)<br>
> interact(plot_line,c=DropdownWidget(values=['b','r','g']));<br>
><br>
> Even when specifying the value, for example<br>
><br>
> def plot_line(c='b'):<br>
>     plt.plot([0,1],color=c)<br>
> interact(plot_line,c=DropdownWidget(value='r',values=['b','r','g']));<br>
><br>
> I get an error: KeyError: 'r'.<br>
><br>
> Any thoughts on how to set the state when creating a DropwdownWidget (or<br>
> RadioButtonWidget) using interact? Or is this a bug?<br>
><br>
<br>
Hi, check this:<br>
<a href="http://nbviewer.ipython.org/github/ipython/ipython/blob/master/examples/Interactive%20Widgets/Widget%20List.ipynb" target="_blank">http://nbviewer.ipython.org/github/ipython/ipython/blob/master/examples/Interactive%20Widgets/Widget%20List.ipynb</a><br>
<br>
In your example:<br>
w = widgets.Dropdown(<br>
    options=['b', 'r', 'g'],<br>
    value='r',<br>
    description='Line Color:',<br>
)<br>
<br>
def plot_line(c='b'):<br>
    plt.figure()<br>
    plt.plot([0,1],color=c)<br>
interact(plot_line, c = w)<br></blockquote></div></div></div>