Я работаю с Seaborn и стараюсь, чтобы моя гистограмма выглядела лучше.
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = ['One', 'Two', 'Three', 'Four', 'Five']
y = [2, 3, 0, 4.5, 4]
y2 = [0, 0, -5, 0, 0]
sns.axes_style('white')
sns.set_style('white')
b = sns.barplot(x,y,color='pink')
sns.barplot(x,y2, color='red')
for p in b.patches:
b.annotate(
s='{:.1f}'.format(p.get_height()),
xy=(p.get_x()+p.get_width()/2.,p.get_height()),
ha='center',va='center',
xytext=(0,10),
textcoords='offset points'
)
b.set_yticks([])
sns.despine(ax=b, left=True, bottom=True)
На самом деле я взял код для маркировки баров из другого потока при переполнении стека.
У меня проблема в том, что отрицательная полоса помечена на положительной стороне. Я также хочу избавиться от нулей в начале каждого графика и, возможно, переместить x = ['One','Two','Three','Four','Five']
в середину, где находятся нули, а не внизу.
sns.despine(ax=b, bottom=True, left=True)
избавится от рамки. - person Paul H   schedule 11.09.20150.0
, потому что вы перебираете все патчи, поэтому вам нужно включить условие, которое не аннотирует, когда значениеp.get_height()
не больше нуля. - person Paul H   schedule 11.09.2015