我在使用pandas groupby
创建简单散点图时遇到了颜色Map问题。
示例
import pandas as pd
df = pd.DataFrame(data= {'class': ['A']*5 + ['B']*5,
'index': [i for i in range(10)],
'data': [i for i in range(5)] + [i+1 for i in range(5)]})
# Plotting
fig, ax = plt.subplots()
for key, grp in df.groupby('class'):
grp.plot.scatter(ax=ax, x='index', y='data', label=key)
我得到的警告
/opt/miniconda3/lib/python3.8/site-packages/pandas/plotting/_matplotlib/core.py:1114:用户警告:没有通过“c”提供颜色Map的数据。参数“cmap”将被忽略scatter = ax.scatter(
输出图
散点图已经生成,但是matplotlib对两个类使用相同的颜色。
如果我使用df.plot()
而不是df.plot.scatter()
,则不会打印警告,并且图显示如预期的那样,两个类的颜色不同。因此,这似乎是scatter
的问题。我做错了什么?
软件包版本:
pandas: 1.4.3
matplotlib: 3.6.2
1条答案
按热度按时间nlejzf6q1#
对于散点图,点的颜色由附加参数
c
定义,在您的情况下,该参数是相同的,即None
用于绘制每个散点图的两次调用。您需要将
c
定义为在两个调用中都不同,那么给它一些随机颜色怎么样?问候。