gpt4 book ai didi

python - matplotlib 忽略 locator_params nticks 命令

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

我正在尝试绘制每个轴上有四个刻度的图。这是代码:

ax0 = pyplot.gca()
cmap = pyplot.cm.get_cmap('RdYlBu', 9)
vmin=0.75
vmax=5.25
sc = pyplot.scatter(X[idx, 0], X[idx, 1], c=colors[idx], vmin=vmin,
vmax=vmax, s=30, cmap=cmap)

pyplot.colorbar(sc, ticks=[1.0, 2.0, 3.0, 4.0, 5.0])
ax0.locator_params(tight=True, nticks=4)
ax0.set_ylim([-1.0, 1.0])
ax0.set_xlim([-1.0, 1.0])
ax0.axis('equal')
pyplot.show()

这是生成的图像

scatter plot

如您所见,它忽略了 locator_params 和 set_xlim/set_ylim 命令。我该如何修复它?

最佳答案

首先,如 locator_params 中所述文档:

Remaining keyword arguments are passed to directly to the set_params() method. Typically one might want to reduce the maximum number of ticks and use tight bounds when plotting small subplots, for example: ax.locator_params(tight=True, nbins=4)

关键字参数名为 nbins 而不是 nticks

此外,您可能希望将其设置为两个轴:

ax0.locator_params(which="both", tight=True, nbins=4)

请注意,nbins 不设置刻度数,而是设置最大 bin 数,因此结果可能会少于 4 个 bin。

另一个问题是限制。由于在设置限制后设置了 ax0.axis('equal'),因此会忽略限制。您可能想要设置方面,ax0.set_aspect('equal')

import matplotlib.pyplot as plt
import numpy as np

X =np.random.randn(30,2)
colors= np.random.rand(30)*5
ax0 = plt.gca()
ax0.set_aspect('equal')
cmap = plt.cm.get_cmap('RdYlBu', 9)

sc = plt.scatter(X[:, 0], X[:, 1], c=colors, vmin=0.75,
vmax=5.25, s=30, cmap=cmap)

plt.colorbar(sc, ticks=[1.0, 2.0, 3.0, 4.0, 5.0])
ax0.locator_params(which="both", tight=True, nbins=4)
ax0.set_ylim([-1.0, 1.0])
ax0.set_xlim([-1.0, 1.0])

plt.show()

enter image description here

关于python - matplotlib 忽略 locator_params nticks 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46456179/

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