假设我有这个代码:
num_rows = 10
num_cols = 1
fig, axs = plt.subplots(num_rows, num_cols, sharex=True)
for i in xrange(num_rows):
ax = axs[i]
ax.plot(np.arange(10), np.arange(10)**i)
plt.show()
Run Code Online (Sandbox Code Playgroud)
结果图有太多信息,现在我想选择1个轴并在新图中单独绘制它
我尝试过做这样的事情
def on_click(event):
axes = event.inaxes.get_axes()
fig2 = plt.figure(15)
fig2.axes.append(axes)
fig2.show()
fig.canvas.mpl_connect('button_press_event', on_click)
Run Code Online (Sandbox Code Playgroud)
但它没有奏效.这样做的正确方法是什么?搜索文档并抛出SE几乎没有任何有用的结果
编辑:
我不介意重新绘制所选择的轴,但我不知道如何判断哪个轴被选中,所以如果该信息以某种方式可用,那么它对我来说是一个有效的解决方案
编辑#2:
所以我设法做了这样的事情:
def on_click(event):
fig2 = plt.figure(15)
fig2.clf()
for line in event.inaxes.axes.get_lines():
xydata = line.get_xydata()
plt.plot(xydata[:, 0], xydata[:, 1])
fig2.show()
Run Code Online (Sandbox Code Playgroud)
这似乎是"工作"(所有其他信息丢失 - 标签,线条颜色,线条样式,线条宽度,xlim,ylim等...)但我觉得必须有一个更好的方法来做到这一点
谢谢
matplotlib ×1