我想制作绘图并使用滑块更改其属性。但matplotlib.widgets.Slider
的标签文字对我来说非常小。我在网上冲浪找到了如何改变它的答案,但我没有运气。
代码的关键部分是:
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
我尝试为标签制作文字,如下:
t = matplotlib.text.Text(r'$\epsilon_0$', size = 22)
E0_slider = mw.Slider(E0_slider_ax, label = t, valmin = 1, valmax = 100, valinit = E0)
但它给我一个错误:
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
请求帮助!
答案 0 :(得分:0)
首先创建滑块,然后使用E0_slider.label.set_size()
更新标签文字大小。
您不需要先创建matplotlib.text.Text
实例,只需使用该字符串作为标签。
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)
更改标签大小:
答案 1 :(得分:0)
您无法向label
参数提供文本。但您可以在之后更改标签尺寸。该标签以Slider.label
形式提供,并且作为matplotlib.text.Text
实例,可以使用set_size
更改大小。
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()