gpt4 book ai didi

python - 保存 matplotlib 图时如何隐藏自定义按钮?

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:58 25 4
gpt4 key购买 nike

我对 pyplot 很陌生。我需要在我的情节中添加一个自定义按钮,这是我通过以下代码行完成的:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Button

dataX = np.array([1,2,3,4,5,6,7,8,9,10])
dataY = np.array([1193,1225,1125,1644,1255,13676,2007,2008,12359,1210])

ax = plt.subplot(111)
def on_click(event):
if event.dblclick:
ax.plot((event.xdata, event.xdata), (mean-standardDeviation, mean+standardDeviation), 'r-')
plt.show()

def _yes(event):
print("yolo")

mean = np.mean(dataY)
standardDeviation = np.std(dataY)

ax.plot(dataX, dataY, linewidth=0.5)
plt.connect('button_press_event', on_click)

axcut = plt.axes([0.9, 0.0, 0.1, 0.075])
bcut = Button(axcut, 'YES', color='red', hovercolor='green')
bcut.on_clicked(_yes)

plt.show()

这行代码成功地给了我我需要的解决方案。但我的问题是,当我尝试通过单击工具栏中的按钮来保存图形时,是否可以不显示该自定义按钮?

最佳答案

一种策略可能是隐藏按钮并仅在需要时显示它,即当您想要单击它时。想到了几种可能性,比如按下一个键来显示/隐藏按钮或双击图中的某处。我想一个简单的方法可能是当鼠标在轴上时显示按钮,它所在的位置。(这对于初次使用的用户来说可能是一种糟糕的用户体验,但如果是同一个人使用该应用程序,他或她应该知道按钮和鼠标的位置。)

这是一个工作示例:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Button

dataX = np.array([1,2,3,4,5,6,7,8,9,10])
dataY = np.array([1193,1225,1125,1644,1255,13676,2007,2008,12359,1210])

ax = plt.subplot(111)
def on_click(event):
if event.dblclick:
ax.plot((event.xdata, event.xdata), (mean-standardDeviation, mean+standardDeviation), 'r-')
plt.show()

def on_enter(event):
axcut.set_visible(True)
def on_leave(event):
axcut.set_visible(False)
def _yes(event):
print("yolo")

mean = np.mean(dataY)
standardDeviation = np.std(dataY)

ax.plot(dataX, dataY, linewidth=0.5)
plt.connect('button_press_event', on_click)
plt.connect("axes_enter_event", on_enter)
plt.connect("axes_leave_event", on_leave)


axcut = plt.axes([0.9, 0.0, 0.1, 0.075])
bcut = Button(axcut, 'YES', color='red', hovercolor='green')
axcut.set_visible(False)
bcut.on_clicked(_yes)

plt.show()

关于python - 保存 matplotlib 图时如何隐藏自定义按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com