用交错的xticks在Python matplotlib中绘图

时间:2017-05-17 01:56:21

标签: python matplotlib

这个问题是关于在matplotlib中用xticks绘图 - Python。

假设我有三个向量:

X = [1,2,3,4,5],相应的标签LVEC = [a,b,c,d,e] Y = [1,2,3,4,5]

我想绘制X,Y但是提供来自LVEC的交错xticks(即,在图上仅显示a,c,e标签)。但是,该图应包含所有五个数据点。这本身可能吗?

2 个答案:

答案 0 :(得分:1)

这应该有效:

import matplotlib.pylab as pl

X = [ 1,2,3,4,5 ] 
LVEC = ['a','b','c','d','e'] 
Y = [1,2,3,4,5]

pl.figure()
ax=pl.subplot(111)  # or pl.gca() or similar
pl.plot(X, Y, '-x')
ax.set_xticks([X[0],X[2],X[4]])
ax.set_xticklabels([LVEC[0],LVEC[2],LVEC[4]])

因此,主要技巧是首先使用set_xticks指定标签应出现的x位置,然后使用set_xticklabels覆盖标签。

答案 1 :(得分:0)

如果我理解正确,这应该会给你你想要的效果。

fig, ax = plt.subplots()
ax.scatter(X,Y, c='white',edgecolors='None')
for i, txt in enumerate(LVEC):
    ax.annotate(txt, (X[i],Y[i]))