python - 添加工具栏按钮图标 matplotlib
问题描述
我想在 matplotlib 图形工具栏中的自定义按钮中添加一个图标。我怎样才能做到这一点?到目前为止,我有以下代码:
import matplotlib
matplotlib.rcParams["toolbar"] = "toolmanager"
import matplotlib.pyplot as plt
from matplotlib.backend_tools import ToolToggleBase
class NewTool(ToolToggleBase):
...[tool code]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1, 2, 3], label="legend")
ax.legend()
fig.canvas.manager.toolmanager.add_tool("newtool", NewTool)
fig.canvas.manager.toolbar.add_tool(toolmanager.get_tool("newtool"), "toolgroup")
fig.show()
现在,它唯一要做的就是添加一个新按钮(它可以做我想要的),但图标只是工具的名称,即:“newtool”。如何为自定义图标(如 png 图像)更改此设置?
解决方案
该工具可以有一个属性image
,它表示 png 图像的路径。
import matplotlib
matplotlib.rcParams["toolbar"] = "toolmanager"
import matplotlib.pyplot as plt
from matplotlib.backend_tools import ToolBase
class NewTool(ToolBase):
image = r"C:\path\to\hiker.png"
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1, 2, 3], label="legend")
ax.legend()
tm = fig.canvas.manager.toolmanager
tm.add_tool("newtool", NewTool)
fig.canvas.manager.toolbar.add_tool(tm.get_tool("newtool"), "toolgroup")
plt.show()
推荐阅读
- angular - 为什么 Observable 的 onCompleted 没有表单值?
- java - 无法为 netbeans 项目生成 exe 安装程序
- git - git log macOS 问题
- java - 如果元素不为空,则使用 lambda 过滤器,否则忽略过滤器
- python - 为什么即使我没有这样做,我的数组也会被排序?
- php - 试图在控制器 Laravel 中获取非对象 Auth::user()->id 的属性“id”?
- javascript - 在 back4app 中设置云代码以触发 post API 添加到 ESP
- java - 无法安装 Eclipse IDE - 缺少 JRE。无法打开文件
- wpf - 使单选按钮显示为按钮
- r - 什么命令可以解析出字符变量中的字母和数字?