重新排序Catagorical X轴标记Matplotlib

时间:2018-04-24 13:44:40

标签: python matplotlib

我有一个问题,我认为解决起来很简单,但我似乎无法做到! 我想用matplotlib制作一个简单的图,其中x轴值是分类的。以下是我正在使用的代码:

import matplotlib.pyplot as plt

data = pd.DataFrame()
data['lineID'] = [1]*5 + [2]*5
data['value'] = ['C', 'C', 'A', 'B', 'B', 'A', 'A', 'B', 'C', 'A']
data['chain1'] = [0,1,2,3,4,0,1,2,3,4]
data['chain2'] = [1,2,3,4,5,1,2,3,4,5]


f, ax = plt.subplots(1, len(data['lineID'].unique()))
for idx, lid in enumerate(data['lineID'].unique()):
    _ = data.loc[data['lineID']==lid, :]
    ax[idx].plot((_['value'], _['value']),
                  (_['chain1'], _['chain2']))

现在,这会产生一个很好的情节,如下所示。

Figure 1

但是,我想重新安排X轴来说“C'”,“B'”,“A'”。我试图像这样设置xticks,

f, ax = plt.subplots(1, len(data['lineID'].unique()))
for idx, lid in enumerate(data['lineID'].unique()):
    _ = data.loc[data['lineID']==lid, :]
    ax[idx].plot((_['value'], _['value']),
                  (_['chain1'], _['chain2']))
    ax[idx].set_xticks(['C', 'B', 'A'])

然而,这确实重新排列了标签(见下图2),但数据仍然如图1所示。 Figure 2

有谁知道如何解决这个问题?我想重新标记然后会使用ax.set_xlabels而不是ax.set_xticks

提前致谢。

0 个答案:

没有答案