Python 使用增量设置刻度标签

Python 使用增量设置刻度标签,python,matplotlib,matplotlib-basemap,Python,Matplotlib,Matplotlib Basemap,我试图在绘图(散射3D)上设置刻度标签,并确保它们始终具有相同的增量,无论散射数据中的值如何 scat = ax.scatter(X, Y, C, edgecolor='black', linewidth=0.5, s=160, alpha=0.6) ax.set_xlim([0, 10]) ax.set_ylim(0) 现在,如果我像这样离开它,x轴将有刻度标签0,2,4,…,10,这不是我想要的。我希望勾号标签始终为1、2、3、…、9(请注意,我不希望显示0)。例如,我想将xlim设置为1

我试图在绘图(散射3D)上设置刻度标签,并确保它们始终具有相同的增量,无论散射数据中的值如何

scat = ax.scatter(X, Y, C, edgecolor='black', linewidth=0.5, s=160, alpha=0.6)
ax.set_xlim([0, 10])
ax.set_ylim(0)
现在,如果我像这样离开它,
x
轴将有刻度标签0,2,4,…,10,这不是我想要的。我希望勾号标签始终为1、2、3、…、9(请注意,我不希望显示0)。例如,我想将
xlim
设置为10,即使只有
x=3的数据。实现这一目标的最佳方式是什么

使用
定位器编辑

我尝试使用
定位器
,但仍然存在相同的问题:

scat = ax.scatter(X, Y, C, edgecolor='black', linewidth=0.5, s=160, alpha=0.6)
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.set_ylim(0)

我可以正确地增加1,但我不知道如何将其限制在1到9之间。

使用
设置\u xticks

ax.set_xlim([0, 10])
ax.set_xticks(range(1,10))

set_xticks
是轻度危险的。@tcaswell你说的轻度危险是什么意思?我是Python新手。在
ax.scatter
行之后设置
xlim
xticks
可以吗?或者应该在之前设置?我认为应该没有问题。
set\u xticks
用固定版本替换
定位器和
格式化程序
实例,因此如果在使用
set\u xticks
后将限制更改为超出标记范围的内容,则不会看到xticklabel(
设置点击标签
更糟糕)。如果您以交互方式使用图形,它将中断光标坐标的显示。查看
定位器
@tcaswell查看我的编辑。嗯,我认为这有一个偏移选项……尽管我有所保留,但我认为最简单的解决方案是使用@xndrme的答案。按照我建议的方式,这样做的方法是编写一个新的locater cla党卫军。