Панды заговор пропуская xtick метки - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь отобразить два объекта Серии панд вместе, что работает, за исключением того, что не отображаются все метки.

Я пытаюсь построить две серии так:

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 голосов
/ 02 июля 2018

Ваш выходной график показывает value_counts из 2-х фреймов данных, но очевидно, что порядки индексов больше не совпадают, поэтому в этой точке нет способа отобразить xticks (например, наибольшее значение в df1 равно TIIIh, в то время как значение df2 равно p53-1 и вы пытаетесь построить их вместе, сохранив порядок).

Давайте сначала просто объединим df1 и df2 (я назвал TIIIh и т. Д. Как id для ключа объединения):

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

А затем выведите каждый столбец и покажите все символы:

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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...