Python 模块';matplotlib.pyplot';没有属性';补丁';

Python 模块';matplotlib.pyplot';没有属性';补丁';,python,matplotlib,Python,Matplotlib,我正试图用matplotlib在水平条形图中注释前注。 问题是,当我尝试添加precentage注释时,我得到错误: “模块'matplotlib.pyplot'没有属性'patches' 以下是我尝试创建图表的方式: import seaborn as sns import matplotlib.pyplot as plt from matplotlib.gridspec import GridSpec %matplotlib inline sns.set(style="whit

我正试图用matplotlib在水平条形图中注释前注。 问题是,当我尝试添加precentage注释时,我得到错误:

“模块'matplotlib.pyplot'没有属性'patches'

以下是我尝试创建图表的方式:

import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
%matplotlib inline


sns.set(style="whitegrid")
#sns.set_color_codes("Spectral")



plt.figure(2, figsize=(20,15))
the_grid = GridSpec(2, 2)

plt.subplot(the_grid[0, 1],  title='Original Dataset')
sns.barplot(x='count',y='land_cover_specific', data=df, palette='Spectral')
plt.xlabel('Count')
plt.ylabel('Land cover')

total = len(original)
print(total)

for p in plt.patches:
        percentage = '{:.1f}%'.format(100 * p.get_width()/total)
        x = p.get_x() + p.get_width() + 0.02
        y = p.get_y() + p.get_height()/2
        plt.annotate(percentage, (x, y))

plt.show()
我得到了条形图,但由于此错误,我没有得到注释。

我的最终目标是:将每个酒吧的零售额加在总数中

将seaborn作为sns导入
将matplotlib.pyplot作为plt导入
从matplotlib.gridspec导入gridspec
%matplotlib内联
sns.set(style=“whitegrid”)
#sns.设置颜色代码(“光谱”)
plt.图(2,figsize=(20,15))
_grid=GridSpec(2,2)
plt.subplot(网格[0,1],title='Original Dataset')
水平=sns.条形图(x='count',y='land\u cover\u specific',数据=df,调色板='spectrum')
plt.xlabel('计数')
plt.ylabel(“土地覆盖物”)
总计=长度(原件)
#打印(总计)
#对于plt.patches中的p:
#百分比=“{.1f}%.”格式(100*p.get_width()/total)
#x=p.获取x()+p.获取宽度()+0.02
#y=p.获得y()+p.获得高度()/2
#比例注释(百分比,(x,y))
def自动标签(水平):
对于索引,枚举中的矩形(水平):
高度=矩形。获取高度()
宽度=矩形。获取宽度()
y_值=矩形。获取y()
#颜色是包含十六进制或rgb值的数组
#每个都应该映射到条形图中每个的颜色
plt.text(宽度+高度/2,y_值,“%d”%100*宽度/总数,颜色=颜色[索引])
自动标签(水平)
plt.show()

我认为您只需要更改:

sns.barplot(x='count',y='land_cover_specific', data=df, palette='Spectral')
致:

致:

ax.patches中p的
ax = sns.barplot(x='count',y='land_cover_specific', data=df, palette='Spectral')
for p in plt.patches: