我有一个问题,我认为解决起来很简单,但我似乎无法做到! 我想用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']))
现在,这会产生一个很好的情节,如下所示。
但是,我想重新安排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所示。
有谁知道如何解决这个问题?我想重新标记然后会使用ax.set_xlabels
而不是ax.set_xticks
。
提前致谢。