как изменить формат моих полос ошибок в модуле matplotlib - PullRequest
1 голос
/ 10 июля 2020

Я пытаюсь понять, как сделать в моем графике только верхнюю полосу ошибок с заглавной буквой «-», что я уже выяснил с помощью аргумента lolims. К сожалению, моя полоса ошибок отмечена стрелкой, и я бы предпочел шкалу по умолчанию. Верхний участок с полосой ошибок, которую я хотел бы иметь, а нижний - с отметкой, которую я хотел бы иметь на моем верхнем участке.

Мой код:

import pandas as pd
import matplotlib.pyplot as plt

sheet = pd.read_excel(load file with my data)

fig, axs = plt.subplots(2, 1)
fig.suptitle('Gene expression', fontsize=16)

axs[0].bar(sheet.columns, sheet.iloc[17],hatch="/", color="white", edgecolor="black")
axs[0].errorbar(sheet.columns, sheet.iloc[17], yerr=sheet.iloc[22], capsize=3, ecolor='black', fmt=' ', elinewidth=1,
                lolims=True)

axs[1].bar(sheet.columns, sheet.iloc[17],hatch="-", color="white", edgecolor="black")
axs[1].errorbar(sheet.columns, sheet.iloc[17], yerr=sheet.iloc[22], capsize=3, ecolor='black', fmt=' ', elinewidth=1,)
plt.show() 

и изображение моих участков: введите описание изображения здесь

Как этого добиться?

1 Ответ

2 голосов
/ 10 июля 2020

У вас есть три возможности в зависимости от того, хотите ли вы видеть нижние заглавные буквы:

  1. Укажите год в форме (2, N) или
  2. Постройте планки погрешностей позади полосы
  3. После изменения заглавных букв (в соответствии с комментариями BigBen ниже)

import matplotlib.pyplot as plt

fig,ax = plt.subplots(3)
x = range(1,4)

ax[0].bar(x, x, fc='w', ec='k')
ax[0].errorbar(x, x, yerr=[[0,0,0], [.1,.2,.3]], fmt='none', capsize=3)

ax[1].bar(x, x, fc='w', ec='k', zorder=1 )
ax[1].errorbar(x, x, yerr=[.1,.2,.3], fmt='none', capsize=3, zorder=0)

ax[2].bar(x, x, fc='w', ec='k')
_, cl, _ = ax[2].errorbar(x, x, yerr=[.1,.2,.3], lolims=True, fmt='none', capsize=3)
cl[0].set_marker('_')
#cl[1].set_marker('')  # to remove the lower cap

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

...