Matplotlib check_buttons box colors

I am using check_buttons widget like in example ( http://matplotlib.org/examples/widgets/check_buttons.html )

In a graph with many lines, it is difficult to know from the text which checkbox is selected that strobes the line, at least until the button is pressed and the user can see if he can determine which line is gone.

Does anyone know if the background color of the checkbox could be the same as the line it affects ... something like a legend?

+3


source to share


1 answer


You can set the color of the widget window as follows:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import CheckButtons

t = np.arange(0.0, 2.0, 0.01)
s0 = np.sin(2*np.pi*t)
s1 = np.sin(4*np.pi*t)
s2 = np.sin(6*np.pi*t)

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

rax = plt.axes([0.05, 0.4, 0.1, 0.15])
check = CheckButtons(rax, ('2 Hz', '4 Hz', '6 Hz'), (False, True, True))

#Define colours for rectangles and set them
c = ['b', 'g', 'r']    
[rec.set_facecolor(c[i]) for i, rec in enumerate(check.rectangles)]


def func(label):
    if label == '2 Hz': l0.set_visible(not l0.get_visible())
    elif label == '4 Hz': l1.set_visible(not l1.get_visible())
    elif label == '6 Hz': l2.set_visible(not l2.get_visible())
    plt.draw()
check.on_clicked(func)

plt.show()

      



The checkbox panel has each checkbox as an object matplotlib.patches.Rectangle

that can be customized as needed.

+2


source







All Articles