我與seaborn工作,並試圖讓我的條形圖條形圖表更好看。在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']
移動到零的中間,而不是在底部。
我認爲你的主要問題是你打電話給barplot兩次。找到一種將它壓縮到一個通話的方式可能會有很大的幫助。此外,請提供您用於通知此帖的問題的鏈接。 –
你應該嘗試限制這只是一個問題。我現在回答最後一個:'sns.despine(ax = b,bottom = True,left = True)'將擺脫框架。 –
你得到的'0.0'的,因爲你通過所有的補丁的循環,所以你需要包括不標註一個條件時,p.get_height的'值()'不大於零。 –