Posted at

Juliaでインタラクティブプロット(Check Button編)

More than 1 year has passed since last update.

本稿ではJuliaによるmatplotlibを使ったインタラクティブプロット(Check Button編)について紹介します.

基本的には本家サイトにあるmatplotlib.widgetsのサンプルソースの移植版です.


check_buttons.jl

#Translated from python to julia (reffer to https://matplotlib.org/examples/widgets/check_buttons.html)

#Julia v0.6.2
#PyCall v3.6.4

using PyCall
using PyPlot

const CheckButtons = matplotlib[:widgets][:CheckButtons]

t = 0.0:0.01:2.0
s0 = sin.(2*π*t)
s1 = sin.(4*π*t)
s2 = sin.(6*π*t)

fig, ax = subplots()
l0, = plot(t, s0, visible=false, lw=2)
l1, = plot(t, s1, lw=2)
l2, = plot(t, s2, lw=2)
subplots_adjust(left=0.2)

rax = axes([0.01, 0.4, 0.1, 0.15])
check = CheckButtons(rax, ("2 Hz", "4 Hz", "6 Hz"), (false, true, true))

function func(label)
if label == "2 Hz"
l0[:set_visible](!l0[:get_visible]())
elseif label == "4 Hz"
l1[:set_visible](!l1[:get_visible]())
elseif label == "6 Hz"
l2[:set_visible](!l2[:get_visible]())
end
draw()
end

check[:on_clicked](func)

show()


スクリーンショット 2018-05-10 21.16.16.png