- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试绘制每个轴上有四个刻度的图。这是代码:
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()
这是生成的图像
如您所见,它忽略了 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()
关于python - matplotlib 忽略 locator_params nticks 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46456179/
我正在尝试减少子图中轴刻度的数量(每个轴的值不同,因此我无法手动设置刻度),但其他答案如 this或 this不工作。我创建图形的语法是标准的,如下所示: fig = plt.figure(figsi
我正在尝试绘制每个轴上有四个刻度的图。这是代码: ax0 = pyplot.gca() cmap = pyplot.cm.get_cmap('RdYlBu', 9) vmin=0.75 vmax=5.
我是一名优秀的程序员,十分优秀!