如何在创建后修改Matplotlib Slider(滑块)的颜色?
解决Matplotlib滑块颜色修改失效的问题
你之前的代码修改的是滑块所在坐标轴的背景色,而非滑块控件本身的颜色,所以看不到滑块变蓝。要修改滑块的颜色,需要操作Slider对象的patch属性,或者在初始化时直接指定参数。
正确实现方式
方式一:初始化时直接指定颜色
import matplotlib.pyplot as plt from matplotlib.widgets import Slider fig = plt.figure() ax = fig.add_axes([0.6, 0.2, 0.25, 0.03]) # 初始化时直接设置facecolor为蓝色 slider = Slider(ax, 'Slider', 0, 1, facecolor='b') plt.show()
方式二:创建后动态修改颜色
如果需要在滑块创建完成后再修改颜色,需要操作滑块的patch对象,并刷新绘图:
import matplotlib.pyplot as plt from matplotlib.widgets import Slider fig = plt.figure() ax = fig.add_axes([0.6, 0.2, 0.25, 0.03]) slider = Slider(ax, 'Slider', 0, 1, facecolor='r') # 修改滑块颜色为蓝色 slider.patch.set_facecolor('b') plt.draw() # 刷新界面使修改生效 plt.show()
补充说明
slider.ax.set_facecolor()改变的是滑块所在的整个坐标轴区域的背景,不是滑块控件的颜色,这就是你之前操作无效的原因- Slider控件的可视化部分由其内部的
patch对象负责渲染,所以修改这个对象的颜色才能改变滑块本身的外观
内容的提问来源于stack exchange,提问作者Stefano
相关产品推荐
相关产品推荐

