Python Matplotlib滑块标签将停止响应,并显示非常小的数字
我正在使用matplotlib在python上创建一些滑块,我需要的一些滑块的范围非常小(例如从10E-15到10E-8的范围,等等)。但是,当我试图让这些值显示在滑块上时,它停止工作。滑块矩形仍将显示在绘图上,我可以“滑动”数字,但它不会显示在显示滑块所在数字的一侧的小文本中。 我怀疑这是因为显示器只显示两位小数,但我不知道如何增加显示的小数位数。滑块函数中是否有一个参数可用于更改?如果有任何帮助,我将不胜感激,因为我对使用Python还是相当陌生的(事实上只有几周时间),所以如果能简单地解释一下,我将不胜感激 下面是我用来制作这种滑块的代码示例Python Matplotlib滑块标签将停止响应,并显示非常小的数字,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我正在使用matplotlib在python上创建一些滑块,我需要的一些滑块的范围非常小(例如从10E-15到10E-8的范围,等等)。但是,当我试图让这些值显示在滑块上时,它停止工作。滑块矩形仍将显示在绘图上,我可以“滑动”数字,但它不会显示在显示滑块所在数字的一侧的小文本中。 我怀疑这是因为显示器只显示两位小数,但我不知道如何增加显示的小数位数。滑块函数中是否有一个参数可用于更改?如果有任何帮助,我将不胜感激,因为我对使用Python还是相当陌生的(事实上只有几周时间),所以如果能简单地解
a2 = 4.721*(math.pow(10,-11))
a2_size = plt.axes([0.4, 0.1, 0.25, 0.05], facecolor = axcolor) # left, bottom, width, height
a2_slider = Slider(a2_size, 'A2', valmin=math.pow(10,-15), valmax=math.pow(10,-10), valinit=a2)
(我也尝试过交替使用math.pow和**乘数,但效果相同。)
谢谢你的帮助 我认为您的matplotlib版本有问题,因为对我来说,代码
from matplotlib.widgets import Slider
import matplotlib.pyplot as plt
import math
axcolor = 'lightgoldenrodyellow'
a2 = 4.721*(math.pow(10,-11))
a2_size = plt.axes([0.4, 0.1, 0.25, 0.05], facecolor = axcolor) # left, bottom, width, height
a2_slider = Slider(a2_size, 'A2', valmin=math.pow(10,-15), valmax=math.pow(10,-10), valinit=a2)
plt.show()
像这样
但是,您可以使用
valfmt
来设置滑块值的格式,使用类似%0.9e
的方法将值设置为如下所示
因此,最终的代码将如下所示
from matplotlib.widgets import Slider
import matplotlib.pyplot as plt
import math
axcolor = 'lightgoldenrodyellow'
a2 = 4.721*(math.pow(10,-11))
a2_size = plt.axes([0.4, 0.1, 0.25, 0.05], facecolor = axcolor) # left, bottom, width, height
a2_slider = Slider(a2_size, 'A2', valmin=math.pow(10,-15), valmax=math.pow(10,-10), valinit=a2, valfmt='%0.9e')
plt.show()
我认为您的matplotlib版本有问题,因为对我来说,代码
from matplotlib.widgets import Slider
import matplotlib.pyplot as plt
import math
axcolor = 'lightgoldenrodyellow'
a2 = 4.721*(math.pow(10,-11))
a2_size = plt.axes([0.4, 0.1, 0.25, 0.05], facecolor = axcolor) # left, bottom, width, height
a2_slider = Slider(a2_size, 'A2', valmin=math.pow(10,-15), valmax=math.pow(10,-10), valinit=a2)
plt.show()
像这样
但是,您可以使用
valfmt
来设置滑块值的格式,使用类似%0.9e
的方法将值设置为如下所示
因此,最终的代码将如下所示
from matplotlib.widgets import Slider
import matplotlib.pyplot as plt
import math
axcolor = 'lightgoldenrodyellow'
a2 = 4.721*(math.pow(10,-11))
a2_size = plt.axes([0.4, 0.1, 0.25, 0.05], facecolor = axcolor) # left, bottom, width, height
a2_slider = Slider(a2_size, 'A2', valmin=math.pow(10,-15), valmax=math.pow(10,-10), valinit=a2, valfmt='%0.9e')
plt.show()