2017-02-23 1 views
1

Ich versuche, die CheckButtons anpassen:anpassen Check-Buttons in Matplotlib

rax = plt.axes(
     [0.55, 0.8, 0.08, 0.08], 
     facecolor=secondary_color 
    ) 

    check = CheckButtons(rax, ('Mn vs. Pn', 'ØMn vs. ØPn'), (True, True)) 

kann aber nicht einen Weg finden, um die Opazität (alpha-Parameter) des Knopfs Feld die Markierung und die Schriftfarbe einzustellen.

Jede mögliche Hilfe

Antwort

0

Wie in der documentation of matplotlib.widgets.CheckButtons gesehen apreciated, die Etiketten, die Schaltfläche Rechtecke und die Linien (der Marker) von der Klasseninstanz zugegriffen werden.
Mit check = CheckButtons(..)

  • check.rectangles gibt eine Liste der Hintergründe Buttons als matplotlib.patches.Rectangle
  • check.labels gibt eine Liste der Etiketten als matplotlib.text.Text
  • check.lines gibt eine Liste von Tupeln von zwei matplotlib.lines.Line2D, die als Marker dienen .

Alle von ihnen haben set_alpha Methoden.

Um den Hintergrund zu setzen, ist es am einfachsten, eine Farbe mit einem bereits gesetzten Alpha-Wert anzugeben, wie col = (0,0,1,0.2), wobei der letzte Wert das Alpha der blauen Farbe ist. Dies kann über das Argument facecolor auf die Checkbutton-Achsen gesetzt werden.

Hier ist ein vollständiges Beispiel.

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

fig= plt.figure(figsize=(4,1.5)) 
ax = plt.axes([0.4, 0.2, 0.4, 0.6]) 
ax.plot([2,3,1]) 
col = (0,0.3,0.75,0.2) 
rax = plt.axes([0.1, 0.2, 0.2, 0.6], facecolor=col) 
check = CheckButtons(rax, ('red', 'blue', 'green'), (1,0,1)) 
for r in check.rectangles: 
    r.set_facecolor("blue") 
    r.set_edgecolor("k") 
    r.set_alpha(0.2) 

[ll.set_color("white") for l in check.lines for ll in l] 
[ll.set_linewidth(3) for l in check.lines for ll in l] 
for i, c in enumerate(["r", "b", "g"]): 
    check.labels[i].set_color(c) 
    check.labels[i].set_alpha(0.7) 

plt.show() 

enter image description here

+0

Dank!, Genau das, was ich brauche, – mglasner