我想使用pandas按类别分组,然后在散点图上按该类别进行着色。我想使用pandas对象进行绘图,因为我正在使用pandas列来标记大小,形状等。
当我使用pandas.plot函数绘制它时,我很难看到如何按组颜色(在本例中,由“cat”)。当一个类别中有三个项目时,我在下面使用的方法不起作用,因为它将颜色解释为黑白值数组。因此下面的图不是我想要的,我希望它是CatA的一种颜色,而catB是一种颜色。
感谢您的帮助!
import pandas as pd
import pylab as plt
import seaborn as sns
import numpy as np
d = {'cat' : pd.Series(['catA', 'catA', 'catA', 'catB']),
'y' : pd.Series([100., 52., 33., 4.]),
'x': pd.Series([1., 2., 3., 4.]),
'markersize' : pd.Series([50., 400., 600., 1600.]) }
df = pd.DataFrame(d)
colorlist = sns.husl_palette(len(df.groupby(df.cat)),l=.3, s=.8)
fig=plt.figure()
ax=fig.gca()
for i, (group, dataframe) in enumerate(df.groupby('cat')):
ax=dataframe.plot(kind='scatter', x='x', y='y', ax=ax, color=colorlist[i], label=group, s=dataframe.markersize)