回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试根据熊猫数据框中的名称绘制带有颜色的matplotlib绘图。在x,y图中,不同的名称点有不同的颜色。你知道吗</p>
<p>数据帧:</p>
<pre><code> id x y Names
0 MAC004524 29.137983 11.864633 ACORN-M
1 MAC004525 28.14 11.80 ACORN-M
2 MAC004526 24.14 12.80 ACORN-C
....
</code></pre>
<p>代码:</p>
<pre><code>names = set(df['Names'])
colors = list(cmap(np.linspace(0, 1, len(names))))
df['color']=0
for a, c in zip(names, colors):
mask = df.loc[df['Names'] == a]
df.loc[mask, 'color'] = c
#but get an error here KeyError: "[('i', 'd') ('x',) ('y',) ('A', 'c', 'o', 'r', 'n')\n ('A', 'c', 'o', 'r', 'n', '_', 'g', 'r', 'o', 'u', 'p', 'e', 'd')\n ('c', 'o', 'l', 'o', 'r')] not in index"
</code></pre>
<p>那我就来策划</p>
<pre><code>x = df['x']
y = df['y']
c= df['color']
plt.scatter(x, y, c=c, s=1)
</code></pre>
<p>所需df:</p>
<pre><code> id x y Names color
0 MAC004524 29.137983 11.864633 ACORN-M [0.267004 0.004874 0.329415 1. ]
</code></pre>