在matplotlib中设置刻度标签

3

我正在尝试在matplotlib中对刻度标签进行一些操作。但是代码似乎不能实现我的要求,我不知道为什么?没有标签。

In[1]: import matplotlib.pyplot as plt
       import numpy as np

In[2]: x = np.arange(0,10)

In[3]: plt.plot(x,x)

       locs, labs = plt.xticks()
       plt.xticks(locs[1:], labs[1:])

       plt.show()

enter image description here

任何帮助请!我想要的是删除x轴上的第一个标签:
enter image description here
我正在使用:
python 3.5.2
matplotlib 1.5.3
win 10
3个回答

6
fig, ax = plt.subplots()
ax.plot(x, x)
ticks = ax.get_xticks()
ax.set_xticks(ticks[1:])
plt.show()

2
虽然这段代码片段可能会解决问题,但它并没有解释为什么或如何回答这个问题。请在您的代码中包含一些解释说明,因为这真的有助于提高帖子的质量。标记者/审核员: 对于类似此答案的代码-only答案,请进行Downvote,而不是删除!(注意:我对该领域不熟悉,因此这个答案可能实际上足够简单,可以省去说明,因此Downvote也就不必要了。您仍然希望添加解释以防止更多的NAA/VLQ标志。) - Scott Weldon

4

试试这个:

locs, labs = plt.xticks() 
plt.xticks(locs[1:]) 
plt.show()

Here you go


2
这是对你问题的直接回答,而不是对你困境的解决方法。
>>> locs, labs = plt.xticks()
>>> locs
array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.])
>>> labs
<a list of 10 Text xticklabel objects>

请注意,当您通过get调用xticks时,它会产生一个包含刻度标记位置的一维数组和一个对象列表。然而,当您通过put调用xticks时,它期望一个类似于数组的位置集合和一个类似于数组的字符串集合。由于某种原因,xticks似乎未能在给出该对象列表时抛出异常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接