Как изменить значения оси в курсивном формате (Python, Matplotlib)

#python #matplotlib

#питон #matplotlib

Вопрос:

В настоящее время я работаю над университетским биоинформатическим проектом. У меня есть график с осью, где значения должны быть выделены курсивом (Proteobacteria, Bacteroidata и т. Д. Должны Быть выделены курсивом), Но я не могу найти никакого решения, как изменить формат ТОЛЬКО для значений одной оси. Я обнаружил, что использование функции plt.rcParams.update() может помочь, но она изменяет весь график / график на курсивный формат, но, как я уже сказал, мне нужно изменить только одну ось.

Мой код:

 color_map = ['#dfdfdf' for i in range(len(order_count))]
color_map[0] = '#e81518'

fig, ax = plt.subplots(1,1, figsize=(13,7))
ax.barh(phyl_count['Phylum'], phyl_count['Phyl_Perc'], linewidth=0.6, color = color_map)
plt.gca().invert_yaxis()
ax.grid(axis='x', alpha=0.4)

plt.xlabel('Percent')
plt.ylabel('Phylum')

for index,data in enumerate(phyl_count['Phyl_Perc']):
    plt.text(x=data 0.1, y=index 0.20,s=f'{data}%')
    

plt.show()
 

И я получаю этот график, как я могу изменить Proteobacteria, Bacteriodata и т. Д. На курсив?

введите описание изображения здесь

Ответ №1:

Вы можете получить список меток, написав

 labels = ax.get_yticklabels()
 

Это дает вам список меток, где каждая метка является экземпляром текста Matplotlibs. У этого есть set_style -метод, где одним из вариантов является установка текста 'italic' , чтобы вы могли

 for lbl in labels:
    lbl.set_style('italic')