2014-01-21 61 views
0

我试图设置绘图上的刻度标签(散点图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出现)。例如,即使只有x = 3的数据,我也想将xlim设置为10。达到此目的的最佳方法是什么?

编辑与Locator

我试着用Locator,但我STIL有同样的问题:

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.

+0

查找'Locators' – tacaswell

+0

@tcaswell查看我的编辑。 –

+0

呵呵,认为有一个偏移选项....尽管我保留,我认为这里的_easiest_解决方案是使用@xndrme的答案。按照我的建议,这样做的方法是编写一个新的定位器类。 – tacaswell

回答

1

使用set_xticks

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

'set_xticks'是轻度危险的。 – tacaswell

+0

@tcaswell你是什么意思,轻度危险?我对Python很陌生。 –

+0

在'ax.scatter'行之后设置'xlim'和'xticks'可以吗?还是应该设置之前? –