python - 在不清除滑块的情况下清除 Matplotlib 图
问题描述
我目前正在创建一个需要更新 matplotlib 图形的应用程序。我坚持以下步骤。
我在同一个图中有一个散点图和滑块。更改滑块值后,我需要在不清除滑块的情况下清除散点图。以下是我实现的代码,但它并没有清除情节。该.clf()
函数同时删除滑块和散点图。有没有办法可以只删除情节而不影响滑块?
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
X1=np.arange(10)
Y1=np.arange(10)
Z1=np.arange(10)
fig,ax=plt.subplots()
ax=plt.scatter(X1,Y1,Z1)
axSlider1=plt.axes([0.3,0.9,0.3,0.05])
Slder2=Slider(ax=axSlider1,label='Slider',valmin=1,valmax=4,valinit=2)
plt.show()
# Function to clear the scatter plot without effecting slider.
def val_update(val):
plt.cla()
Slder2.on_changed(val_update)
解决方案
fig,ax=plt.subplots()
将 Axes 对象分配给ax
- 然后
ax=plt.scatter(X1,Y1,Z1)
将 PathCollection 对象分配给ax
. val_update
对错误的事情采取行动也是如此。
这似乎解决了您询问的问题。
X1=np.arange(10)
Y1=np.arange(10)
Z1=np.arange(10)
fig,ax=plt.subplots()
path=plt.scatter(X1,Y1,Z1)
axSlider1=plt.axes([0.3,0.9,0.3,0.05])
Slder2=Slider(ax=axSlider1,label='Slider',valmin=1,valmax=4,valinit=2)
# Function to clear the scatter plot without effecting slider.
def val_update(val):
print(val)
ax.clear()
Slder2.on_changed(val_update)
plt.show()
Matplotlib Gallery是一个很好的资源,您可以浏览它以查找您想要的功能并查看它们是如何制作的。- 喜欢这个滑块演示
如果您认为您将来会使用 matplotlib,我建议您按照入门教程和至少艺术家教程进行学习
推荐阅读
- python-3.x - 部署无服务器应用程序时 aws-sam-cli 和 jmespath 版本不兼容
- docker - K8s 中的 Docker + Fluentd 进行日志轮换:Docker 是否需要知道 Fluentd 的存在?
- angular - 在继承的组件之间切换可观察数据时遇到问题
- java - Gradle 多模块项目编译因子模块中提到的依赖项中的“classNotFoundExceptions”而失败
- javascript - 尝试在不使用 NPM 或 webpack 的情况下使用 Vue js 插件
- python - 将字典列表分组为类对象
- amazon-web-services - AWS EC2 import-image:ClientError:磁盘验证失败[我们无权访问给定资源。原因 403 禁止
- web-crawler - 仅将 Nutch 限制为种子路径及其以下网页
- c# - 如何有效地读取流上 JPEG 图像的大小
- ios - 要拨打“8 800 333 68 48”,使用了 UIApplication.shared.open(, completionHandler:),但它拨打了不同的号码。" +8 80 333 68 48"