散景图中的散点图:使用标签作为颜色

时间:2018-06-11 16:03:45

标签: python pandas bokeh

我使用熊猫并经常出现以下情况:我想绘制散点图,其中x和y是数字,我还有一个字符串列,其中包含分类数据,如“car”& “van”或“fast”,“slow”,“average”,像这样:

df = pd.DataFrame(
    {
        "cat": ['a', 'b', 'a', 'c'],
        "kpi1": [1,2,3,4],
        "kpi2": [4,3,2,1]
    }
)

明显的可视化是根据此列为点着色。 我认为我可以这样做:

fig.scatter(x="kpi1", y="kpi2", color="cat", source=ColumnDataSource(df))

然而,这不起作用,所有点都具有相同的颜色。 According to this answer,我必须添加以下几行:

import bokeh.models as bmo
from bokeh.palettes import d3

palette = d3['Category10'][len(df['cat'].unique())]
color_map = bmo.CategoricalColorMapper(factors=df['cat'].unique(),
                               palette=palette)

fig.scatter(x='kpi1', y='kpi2',
      color={'field': 'cat', 'transform': color_map}, source=ColumnDataSource(df))

这意味着5条复杂的代码行,而不是添加单个参数。这不可能是添加颜色编码的最简单方法吗?有没有办法使用默认颜色,例如在seaborn?

0 个答案:

没有答案