python interactive slider_python – 有两个滑块的交互式matplotlib图

除了@triplepoint提到的,看看滑块小部件。

(我正在做这个社区wiki,因为我只是复制粘贴从示例。这个特定的例子教坏坏习惯(例如从pylab import *),但它得到了点。这个例子已被修正,以避免使用pylab。)

from numpy import pi, sin

import numpy as np

import matplotlib.pyplot as plt

from matplotlib.widgets import Slider, Button, RadioButtons

def signal(amp, freq):

return amp * sin(2 * pi * freq * t)

axis_color = 'lightgoldenrodyellow'

fig = plt.figure()

# Draw the plot

ax = fig.add_subplot(111)

fig.subplots_adjust(left=0.25, bottom=0.25)

t = np.arange(0.0, 1.0, 0.001)

amp_0 = 5

freq_0 = 3

[line] = ax.plot(t, signal(amp_0, freq_0), linewidth=2, color='red')

ax.set_xlim([0, 1])

ax.set_ylim([-10, 10])

# Add two sliders for tweaking the parameters

amp_slider_ax = fig.add_axes([0.25, 0.15, 0.65, 0.03], axisbg=axis_color)

amp_slider = Slider(amp_slider_ax, 'Amp', 0.1, 10.0, valinit=amp_0)

freq_slider_ax = fig.add_axes([0.25, 0.1, 0.65, 0.03], axisbg=axis_color)

freq_slider = Slider(freq_slider_ax, 'Freq', 0.1, 30.0, valinit=freq_0)

def sliders_on_changed(val):

line.set_ydata(signal(amp_slider.val, freq_slider.val))

fig.canvas.draw_idle()

amp_slider.on_changed(sliders_on_changed)

freq_slider.on_changed(sliders_on_changed)

# Add a button for resetting the parameters

reset_button_ax = fig.add_axes([0.8, 0.025, 0.1, 0.04])

reset_button = Button(reset_button_ax, 'Reset', color=axis_color, hovercolor='0.975')

def reset_button_on_clicked(mouse_event):

freq_slider.reset()

amp_slider.reset()

reset_button.on_clicked(reset_button_on_clicked)

# Add a set of radio buttons for changing color

color_radios_ax = fig.add_axes([0.025, 0.5, 0.15, 0.15], axisbg=axis_color)

color_radios = RadioButtons(color_radios_ax, ('red', 'blue', 'green'), active=0)

def color_radios_on_clicked(label):

line.set_color(label)

fig.canvas.draw_idle()

color_radios.on_clicked(color_radios_on_clicked)

plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值