熊猫密谋跳过xtick标签

时间:2018-06-27 01:49:15

标签: python pandas

我正在尝试同时显示两个熊猫系列对象,除了没有显示所有标签之外,其他都可以正常工作。

我试图像这样将两个系列绘制在一起:

plt.figure()
sns.set_style('ticks')
ts86['Gene'].value_counts().plot(kind='area')
l97['Gene'].value_counts().plot(kind='area')
sns.despine(offset=10)

但是仅显示一个索引。

enter image description here

这是我拥有的两个系列:

one

TIIIh     25
TET2-2    24
IDH2      15
TIIIa     14
TIIIb     12
TIIIj     11
TIIIp      9
p53-1      9
SF3B1      8
TIIIe      8
KRAS-1     7
TIIIo      6
TIIId      6
TET2-1     6
GATA1      5
p53-3      5
HRAS       5
NRAS-2     4
IDH1       4
TIIIq      4
JAK2       4
TIIIc      4
TIIIf      3
TIIIg      3
TIIIm      3
KRAS-2     3
p53-2      3
TIIIk      3
TIIIn      2
DNMT3a     1

two

p53-1     17
p53-2      2
NRAS-2     2
p53-3      1
KRAS-2     1

1 个答案:

答案 0 :(得分:1)

您的输出图显示了2个数据帧中的value_counts,但显然索引顺序不再相同,因此此时无法显示xticks(例如df1中的最高计数为TIIIh,而df2的值为p53-1,您正尝试通过保留顺序将它们绘制在一起。)

首先简单地将df1和df2合并(我将TIIIh命名为id,以作为合并密钥):

combi = pd.merge(ts86, l97, on='id', how='left')
combi = combi.set_index('id')

然后,绘制每列并显示所有xticks:

ax = combi['Gene_x'].plot(kind='area', figsize=(10, 3))
combi['Gene_y'].plot(kind='area', figsize=(10, 3))
ax.set_xticks(range(combi.shape[0]))
ax.set_xticklabels(combi.index, rotation=90)

现在您得到了:

enter image description here

希望这会有所帮助。