gpt4 book ai didi

python - 使用 Spyder IDE 结束在 matplotlib 中手动选择轮廓

转载 作者:行者123 更新时间:2023-12-01 00:18:02 25 4
gpt4 key购买 nike

我正在尝试使用matplotlib.pyplot.clabel手动放置轮廓标签,如下所示:

import matplotlib.pyplot as plt
import numpy as np

# Make example contours
N=20
X = np.linspace(0.0, 10.0, N)
Y = np.linspace(0.0, 25.0, N)
Z = np.ones((N,N))
i=0
j=0
for i in range(N):
for j in range(N):
Z[i][j] = i+j
j += 1
i += 1
Z = Z.transpose()

# Make subplots figure
fig, axes = plt.subplots(2, 1, sharex=True, figsize=(8,5))
im = axes[0].contour(X, Y, Z, colors = 'k')
CLS = plt.clabel(im, colors = 'k', fmt = '%2.1f', fontsize=12, manual=True)
im2 = axes[1].contourf(X, Y, Z)
fig.show()

此代码生成下图,当您左键单击不同的轮廓时,该图将轮廓标签添加到它们:

enter image description here

当 python 跟踪点击时,控制台上的消息是:

Select label locations manually using first mouse button. End manual selection with second mouse button.

问题是右键单击不会结束事件记录,并且我无法在运行时在脚本中越过这一点。我已经在 Windows 和 Mac 上使用 Spyder 尝试过此操作,并且第二个鼠标按钮未记录。

编辑1:正如@ImportanceOfBeingErnest指出的,第二个鼠标按钮实际上是滚轮,而不是右键。我决定保留这个问题,因为我认为每个 matplotlib 用户都不清楚这一点。

我想知道如何结束手动选择过程,以便程序继续,并且我能够检索如下所示的数字:

enter image description here

当然还有轮廓标签。我已经在自动、Tkinter 和 Qt5 中使用图形绘图仪尝试过此过程,但没有成功。

最佳答案

这不是您期望的答案,但我自己在使用 clabel 时也遇到过类似的问题,并以不同的方式使用 manual 关键字找到了解决该问题的方法。您所要做的就是提供一个元组的元组,每个元组都包含所需标签的坐标(这些坐标就像您在带有 x 和 y 刻度标签的图表上阅读一样)。然后,该算法会将您的标签添加到最接近的轮廓。虽然有一些尝试和错误,但至少我发现它比鼠标选择更可靠。

ax.clabel(contourObject, colors='', fmt='', fontsize=,
manual=((x1, y1), (x2, y2), (x3, y3)), inline=True,
inline_spacing=)

关于python - 使用 Spyder IDE 结束在 matplotlib 中手动选择轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59170429/

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