Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib滑块标签将停止响应,并显示非常小的数字_Python_Python 3.x_Matplotlib - Fatal编程技术网

Python Matplotlib滑块标签将停止响应,并显示非常小的数字

Python Matplotlib滑块标签将停止响应,并显示非常小的数字,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我正在使用matplotlib在python上创建一些滑块,我需要的一些滑块的范围非常小(例如从10E-15到10E-8的范围,等等)。但是,当我试图让这些值显示在滑块上时,它停止工作。滑块矩形仍将显示在绘图上,我可以“滑动”数字,但它不会显示在显示滑块所在数字的一侧的小文本中。 我怀疑这是因为显示器只显示两位小数,但我不知道如何增加显示的小数位数。滑块函数中是否有一个参数可用于更改?如果有任何帮助,我将不胜感激,因为我对使用Python还是相当陌生的(事实上只有几周时间),所以如果能简单地解

我正在使用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()