Для Scala вы можете использовать библиотеку, которую я создал: https://github.com/kypeli/sversion
Версия ("1.2") & gt; Версия ("1.1") // true Version ("1.2.1") & gt; Версия ("1.1.2") // true Version ("1.1.1") == Version ("1.1.1") // true Version ("1.1.1") & gt; Версия ("1.1") // true Version ("1.1.0") == Версия ("1.1") // true Version ("1.1-RC2") & gt; Версия («1.1-RC1») // истинная версия («1.1-RC1») & gt; Версия ("1.1") // true
Вы получаете его прямо из патчей осей:
In [35]: for p in ax.patches:
ax.annotate(str(p.get_height()), (p.get_x() * 1.005, p.get_height() * 1.005))
Вы хотите настроить форматирование строк и смещения, чтобы получить объекты по центру, возможно, используйте ширину от p.get_width()
, но это должно заставить вас начать. Может не работать со штабелями, если вы не отслеживаете смещения где-нибудь.
Решение, которое обрабатывает также отрицательные значения с формированием плавающего образца.
Все еще нуждается в настройках смещения.
df=pd.DataFrame({'A':np.random.rand(2)-1,'B':np.random.rand(2)},index=['val1','val2'] )
ax = df.plot(kind='bar', color=['r','b'])
x_offset = -0.03
y_offset = 0.02
for p in ax.patches:
b = p.get_bbox()
val = "{:+.2f}".format(b.y1 + b.y0)
ax.annotate(val, ((b.x0 + b.x1)/2 + x_offset, b.y1 + y_offset))
for p in ax.patches: ax.annotate(np.round(p.get_height(),decimals=2), (p.get_x()+p.get_width()/2., p.get_height()), ha='center', va='center', xytext=(0, 10), textcoords='offset points')
– leroygr 22 August 2014 в 15:34ax.annotate(str(p.get_width()), (p.get_x() + p.get_width(), p.get_y()), xytext=(5, 10), textcoords='offset points')
– ksindi 4 January 2016 в 21:00ax.annotate(str(int(p.get_width())), (p.get_x() + p.get_width(), p.get_y()), xytext=(-2, 4), textcoords='offset points', horizontalalignment='right')
+1 – DaveL17 14 December 2016 в 23:02