gpt4 book ai didi

python - 绘图 : Position of cursor not shown

转载 作者:行者123 更新时间:2023-11-28 22:28:28 25 4
gpt4 key购买 nike

当我在 pyplot 中制作子图时,光标的位置没有正确显示,如下图所示(光标位于右上角的某个位置(所有其他子图都经历过相同的行为),但是当我截屏时,光标不在那里(我使用的是 Win10): enter image description here[] 之间的值是正确的颜色值,但未显示 xy 值。只有当我使用子图时才会发生这种情况。
这是生成该图片的代码:

def plot_subplots(lam, t):
# lam: list of 4 lambda values, t fixed
f, ax = plt.subplots(2, 2, sharex='col', sharey='row')
((ax1, ax2), (ax3, ax4)) = ax
ax = [ax1, ax2, ax3, ax4]
# get X and K (both equidistant arrays)

for k, l in enumerate(lam):
# get the color array husimi
p = ax[k].pcolorfast(X, K, husimi, cmap='jet')
ax[k].set_title(r'$\lambda='+str(l)+'$')

ax1.set_ylabel(r'$k$')
ax3.set_ylabel(r'$k$')
ax1.set_yticks([min(K), 0, max(K)])
ax1.set_yticklabels([r'$-\pi$', r'$0$', r'$\pi$'])
ax3.set_yticks([min(K), 0, max(K)])
ax3.set_yticklabels([r'$-\pi$', r'$0$', r'$\pi$'])
ax3.set_xlabel(r'$x$')
ax4.set_xlabel(r'$x$')
ax3.set_xticks([min(X), 0, max(X)])
ax4.set_xticks([min(X), 0, max(X)])
ax3.set_xticklabels([r'$'+str(min(X))+'$', r'$0$', r'$'+str(max(X))+'$'])
ax4.set_xticklabels([r'$'+str(min(X))+'$', r'$0$', r'$'+str(max(X))+'$'])
f.suptitle(r'$t_2='+str(t)+'$')

如果重要的话,我使用 Python 3.4.3 64 位和 Matplotlib 1.5.2。是否有人在产生此行为的代码中发现了错误,或者这只是 plt.pcolorfast 的一些错误?

最佳答案

这与次要情节无关。它也不是 pcolorfast 中的错误或错误。

没有显示数字的原因是您手动设置了 xticklabels。使用 ax.set_xticklabels 覆盖轴的格式化程序并创建固定的格式化程序。如果您设置 ax.set_xticklabels(["apple", "banana", "cherry"]),问题可能会变得很明显;你会在苹果和香蕉之间选择哪个值?!

所以这个想法当然是不使用 set_xticklabels 从而不使用固定的格式化程序。相反,可以使用 FuncFormatter 和一个函数,该函数为每个可能的输入返回一个值,并且只确保,例如np.pi 格式为 π

import matplotlib.pyplot as plt
import matplotlib.ticker
import numpy as np; np.random.seed(1)

x = np.linspace(-np.pi,np.pi)
X,Y = np.meshgrid(x,x)
Z = np.random.normal(size=np.array(X.shape)-1)


fig, ax = plt.subplots()

pc = ax.pcolorfast(X,Y,Z)
ax.set_yticks([-np.pi, 0, np.pi])

def fmt(x,pos):
if np.isclose([np.abs(x)],[np.pi]):
if x>0: return r'$\pi$'
else: return r'$-\pi$'
else:
return "%g" % x
ax.yaxis.set_major_formatter(matplotlib.ticker.FuncFormatter(fmt))

fig.colorbar(pc, ax=fig.axes)
plt.show()

enter image description here

关于python - 绘图 : Position of cursor not shown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43537786/

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