python-2.7 - 如何使用 matplotlib 在颜色栏中显示所有间隔
问题描述
这是我的代码。我在这里提到了 50 个间隔,当我拖动滑块时只有 6 或 7 个间隔,但我想在我的颜色栏中显示我所有的间隔。所以任何人都可以指导我。提前谢谢你。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button
import matplotlib.colors
ax = plt.subplot(111)
plt.subplots_adjust(left=0.25, bottom=0.25)
img_data = np.random.rand(50,50)
c_max = 2
img = ax.imshow(img_data, interpolation='nearest')
cb = plt.colorbar(img)
axcolor = 'lightgoldenrodyellow'
ax_cmax = plt.axes([0.25, 0.15, 0.65, 0.03])
s_cmax = Slider(ax_cmax, 'max', 0, 50, valfmt=c_max)
def update(val, s=None):
# _cmin = s_cmin.val
_cmax = s_cmax.val
img.set_clim(_cmax)
plt.draw()
s_cmax.on_changed(update)
plt.show()
解决方案
Slider
调用的参数valfmt
应该是一个字符串,用于格式化滑块值。
因此,如果您想显示浮点数的 2 位小数,则需要将c_max = "%1.2f"
. 请注意,如果要将最小值保持在 0,则也需要将其设置为img.set_clim(0, _cmax)
c_max = "%1.2f"
img = ax.imshow(img_data, interpolation='nearest')
cb = plt.colorbar(img)
axcolor = 'lightgoldenrodyellow'
ax_cmax = plt.axes([0.25, 0.15, 0.65, 0.03])
s_cmax = Slider(ax_cmax, 'max', 0, 50, valfmt=c_max)
def update(val, s=None):
# _cmin = s_cmin.val
_cmax = s_cmax.val
img.set_clim(0, _cmax)
plt.draw()
s_cmax.on_changed(update)
plt.show()
推荐阅读
- azure-logic-apps - 嵌套逻辑应用重试 - 父级抛出 504
- ckeditor - 为 ts config 中的链接设置默认 css 类
- vaadin14 - 如何编写公共对话框 addClickListener 写回表单 TextField
- json - ServiceStack - 在映射到 DTO 之前验证 json 数据
- javascript - 使用可编写脚本的应用程序向 Shelly 云发送请求
- asp.net - 检索图像以查看 ASP.MVC
- python - 在 pandas apply 函数中修改同一个对象是否安全?
- java - 当我尝试通过 selenium chrome 驱动程序启动时,Chrome 崩溃
- c# - 图像分类 - 从位图对象加载。微软.ML
- google-chrome-extension - 如何将chrome扩展上的输入设置为来自dom的文本?