Reset an argument when varying another argument using interact
I was wondering if ipywidgets supports resetting one of the arguments to a default value whenever you manipulate/vary/slide/change one of the other interactive arguments. Taking a basic example from their documentation
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot
What I would be looking for is a way to reset argument b to some default value whenever I change m. Is this supported, and if not, would someone be able to think of a clever way to do it anyway? I personally can't.
python ipywidgets
add a comment |
I was wondering if ipywidgets supports resetting one of the arguments to a default value whenever you manipulate/vary/slide/change one of the other interactive arguments. Taking a basic example from their documentation
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot
What I would be looking for is a way to reset argument b to some default value whenever I change m. Is this supported, and if not, would someone be able to think of a clever way to do it anyway? I personally can't.
python ipywidgets
add a comment |
I was wondering if ipywidgets supports resetting one of the arguments to a default value whenever you manipulate/vary/slide/change one of the other interactive arguments. Taking a basic example from their documentation
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot
What I would be looking for is a way to reset argument b to some default value whenever I change m. Is this supported, and if not, would someone be able to think of a clever way to do it anyway? I personally can't.
python ipywidgets
I was wondering if ipywidgets supports resetting one of the arguments to a default value whenever you manipulate/vary/slide/change one of the other interactive arguments. Taking a basic example from their documentation
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot
What I would be looking for is a way to reset argument b to some default value whenever I change m. Is this supported, and if not, would someone be able to think of a clever way to do it anyway? I personally can't.
python ipywidgets
python ipywidgets
asked Nov 19 '18 at 17:17
user129412user129412
4671416
4671416
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
This is a rather simplified example, but you can define a default_value
as a normal instance variable for b
, and then reassign it whenever m
changes through a normal observe
command.
In this case where you have two or more widgets interacting, it might be easier to manage as a class
where the two inputs are instance variables, especially if you want to use this combination of widgets in multiple places in the same module/notebook.
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
m = interactive_plot.children[0]
b = interactive_plot.children[1]
b.default_value = 0
def set_b_default(button):
b.value = b.default_value
m.observe(set_default)
interactive_plot
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53379680%2freset-an-argument-when-varying-another-argument-using-interact%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This is a rather simplified example, but you can define a default_value
as a normal instance variable for b
, and then reassign it whenever m
changes through a normal observe
command.
In this case where you have two or more widgets interacting, it might be easier to manage as a class
where the two inputs are instance variables, especially if you want to use this combination of widgets in multiple places in the same module/notebook.
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
m = interactive_plot.children[0]
b = interactive_plot.children[1]
b.default_value = 0
def set_b_default(button):
b.value = b.default_value
m.observe(set_default)
interactive_plot
add a comment |
This is a rather simplified example, but you can define a default_value
as a normal instance variable for b
, and then reassign it whenever m
changes through a normal observe
command.
In this case where you have two or more widgets interacting, it might be easier to manage as a class
where the two inputs are instance variables, especially if you want to use this combination of widgets in multiple places in the same module/notebook.
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
m = interactive_plot.children[0]
b = interactive_plot.children[1]
b.default_value = 0
def set_b_default(button):
b.value = b.default_value
m.observe(set_default)
interactive_plot
add a comment |
This is a rather simplified example, but you can define a default_value
as a normal instance variable for b
, and then reassign it whenever m
changes through a normal observe
command.
In this case where you have two or more widgets interacting, it might be easier to manage as a class
where the two inputs are instance variables, especially if you want to use this combination of widgets in multiple places in the same module/notebook.
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
m = interactive_plot.children[0]
b = interactive_plot.children[1]
b.default_value = 0
def set_b_default(button):
b.value = b.default_value
m.observe(set_default)
interactive_plot
This is a rather simplified example, but you can define a default_value
as a normal instance variable for b
, and then reassign it whenever m
changes through a normal observe
command.
In this case where you have two or more widgets interacting, it might be easier to manage as a class
where the two inputs are instance variables, especially if you want to use this combination of widgets in multiple places in the same module/notebook.
%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np
def f(m, b):
plt.figure(2)
x = np.linspace(-10, 10, num=1000)
plt.plot(x, m * x + b)
plt.ylim(-5, 5)
plt.show()
interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
m = interactive_plot.children[0]
b = interactive_plot.children[1]
b.default_value = 0
def set_b_default(button):
b.value = b.default_value
m.observe(set_default)
interactive_plot
answered Jan 8 at 8:07
ac24ac24
53019
53019
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53379680%2freset-an-argument-when-varying-another-argument-using-interact%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown