2017-05-16 3 views
0

Ich möchte Diagramme erstellen und ihre Eigenschaften mit Schieberegler ändern. Aber der Etikettentext von matplotlib.widgets.Slider ist sehr klein für meine Augen. Ich surfte im Internet, um die Antwort zu finden, wie ich es ändern könnte, aber ich hatte kein Glück.Change matplotlib.slider Label Textgröße

Der entscheidende Teil des Codes ist:

E0_slider_ax = fig.add_axes([0.6, 0.2, 0.25, 0.03], axisbg=axis_color) 
E0_slider = mw.Slider(E0_slider_ax, r'$\epsilon_0$', 1, 100, valinit = E0) 
# I want to make r'$\epsilon_0$' bigger 

Ich habe versucht, Text für das Label als folows zu machen:

t = matplotlib.text.Text(r'$\epsilon_0$', size = 22) 
E0_slider = mw.Slider(E0_slider_ax, label = t, valmin = 1, valmax = 100, valinit = E0) 

aber es gibt mir eine Fehlermeldung:

Traceback (most recent call last): 

    File "<ipython-input-53-2310b0749547>", line 1, in <module> 
    runfile('C:/Users/Robert/Desktop/multidif_S.py', 
wdir='C:/Users/Robert/Desktop') 

    File "C:\Users\Robert\Desktop\WinPython-64bit-3.5.2.2\python- 
3.5.2.amd64\lib\site- 
packages\spyderlib\widgets\externalshell\sitecustomize.py", line 845, in 
runfile 
    execfile(filename, namespace) 

    File "C:\Users\Robert\Desktop\WinPython-64bit-3.5.2.2\python- 
3.5.2.amd64\lib\site- 
packages\spyderlib\widgets\externalshell\sitecustomize.py", line 103, in 
execfile 
    exec(compile(f.read(), filename, 'exec'), namespace) 

    File "C:/Users/Robert/Desktop/multidif_S.py", line 64, in <module> 
    E0_slider = mw.Slider(E0_slider_ax, label = t, valmin = 1, valmax = 100, 
valinit = E0) 

    File "C:\Users\Robert\Desktop\WinPython-64bit-3.5.2.2\python- 
3.5.2.amd64\lib\site-packages\matplotlib\widgets.py", line 376, in __init__ 
    horizontalalignment='right') 

    File "C:\Users\Robert\Desktop\WinPython-64bit-3.5.2.2\python- 
3.5.2.amd64\lib\site-packages\matplotlib\axes\_axes.py", line 623, in text 
    x=x, y=y, text=s) 

    File "C:\Users\Robert\Desktop\WinPython-64bit-3.5.2.2\python- 
3.5.2.amd64\lib\site-packages\matplotlib\text.py", line 220, in __init__ 
    self.set_text(text) 

    File "C:\Users\Robert\Desktop\WinPython-64bit-3.5.2.2\python- 
3.5.2.amd64\lib\site-packages\matplotlib\text.py", line 1206, in set_text 
    self._text = '%s' % (s,) 

    File "C:\Users\Robert\Desktop\WinPython-64bit-3.5.2.2\python- 
3.5.2.amd64\lib\site-packages\matplotlib\text.py", line 186, in __str__ 
    return "Text(%g,%g,%s)" % (self._x, self._y, repr(self._text)) 

TypeError: a float is required 

Danke für Hilfe!

Antwort

0

Erstellen Sie zuerst den Schieberegler und aktualisieren Sie dann die Größe des Beschriftungstexts mit E0_slider.label.set_size().

Sie müssen zuerst keine Instanz matplotlib.text.Text erstellen, sondern nur die Zeichenfolge als Bezeichnung verwenden.

E0_slider_ax = fig.add_axes([0.6, 0.2, 0.25, 0.03], axisbg=axis_color) 
E0_slider = mw.Slider(E0_slider_ax, r'$\epsilon_0$', 1, 100, valinit = E0) 

E0_slider.label.set_size(22) 

, die die Etikettengröße von Änderungen:

enter image description here

Um enter image description here

0

Sie können keinen Text in die label Argument liefern. Aber Sie können die Etikettengröße nachträglich ändern. Das Etikett ist als Slider.label verfügbar und kann als matplotlib.text.Text -Instanz unter Verwendung von set_size in der Größe geändert werden.

import matplotlib.pyplot as plt 
import matplotlib.widgets 

fig = plt.figure() 

E0_slider_ax = fig.add_axes([0.6, 0.2, 0.25, 0.03], facecolor="skyblue") 
E0_slider = matplotlib.widgets.Slider(E0_slider_ax, r'$\epsilon_0$', 1, 100, valinit = 50) 
E0_slider.label.set_size(40) 

plt.show() 

enter image description here