python-3.x - PathCollection'对象没有属性 legend_elements''
问题描述
我知道这里已经问过这个确切的问题,但是当前的解决方案对我没有任何作用。我似乎无法为每个标签生成具有不同颜色的图例。我已经尝试了Matplotlib上的当前文档,但无济于事。我不断收到我的错误PathCollection object has no attribute legend_elements
编辑:另外,我希望我的图例只是Years
情节的独特年份,而不是现在的情况是每个数据点都映射到我的图例。这就是我所拥有的
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
from matplotlib.pyplot import legend
import os
%config InlineBackend.figure_format = 'retina'
path = None
for dirname, _, filenames in os.walk('/kaggle/input'):
for filename in filenames:
path = os.path.join(dirname, filename)
# Indexes to be removed
early_demo_dividend = 13
high_income = 24
lower_middle_income = 40
north_america = 46
members = 50
post_demo = 56
_removals = [early_demo_dividend, high_income, lower_middle_income, north_america, members, post_demo]
#Read in data
df = pd.read_csv(path)
#Get the rows we want
df = df.loc[df['1960'] > 1]
df = df.drop(columns=["Code", "Type", "Indicator Name"])
#Remove the odd rows
for i in _removals:
df = df.drop(df.index[i])
#Format the dataframe
df = df.melt('Name', var_name='Year', value_name='Budget')
#Plot setup
plt.figure().set_size_inches(16,6)
plt.xticks(rotation=90)
plt.grid(True)
#Plot labels
plt.title('Military Spending of Countries')
plt.xlabel('Countries')
plt.ylabel('Budget in Billions')
#Plot data
new_year = df['Year'].astype(int)
scatter = plt.scatter(df['Name'], df['Budget'], c=(new_year / 10000) , label=new_year)
#Legend setup produce a legend with the unique colors from the scatter
legend1 = plt.legend(*scatter.legend_elements(),
loc="lower left", title="Years")
plt.add_artist(legend1)
plt.show()
解决方案
我也遇到了这个问题。
尝试升级你matplotlib
的pip3 install --upgrade matplotlib
Uninstalling matplotlib-3.0.3:
Successfully uninstalled matplotlib-3.0.3
Successfully installed matplotlib-3.1.2
这个对我有用。
推荐阅读
- javascript - 如何减少 MUI 数据表页面的延迟?
- javascript - 冷却处理程序 -discord.js - 将其设置为 GuildID 特定的冷却时间而不是宽
- python - 发生异常:OSError [WinError 10057] 不允许发送或接收数据的请求,因为未连接套接字
- python - 继续后while循环不会重新执行
- freetype2 - FreeType2 load char 与 sigsegv 崩溃
- python - Anaconda Navigator 卡在无限加载中
- python - 未找到模块。Selenium 突然停止工作
- javascript - 如何在 React 中使用 e.target 使用 EventListener 而不是其子元素来记录元素
- javascript - 如何使用下拉菜单管理分组条形图的组以更新 D3 中的图表?
- powerbi - 这些表关系符号是什么意思?