plotnine 直接颜色分配

时间:2021-05-14 04:09:18

标签: python r ggplot2 plotnine

我不确定这是 plotnine 中的一个功能,但我想专门为值分配颜色。

例如,如果我正在创建散点图

colors = {True:'#a54f7e', False:'grey'}  

(ggplot(df, aes(x = "col1", y="col2", color = "col3")) +
     geom_jitter(size = 3, color = colors)

因此在这种情况下,col3 将是 True/False 值,理想情况下,我希望所有 True 值都为 #a54f7e,所有 False 值都为灰色。上面的代码不会因为这个错误而运行:

PlotnineError: "'{True: 'red', False: 'blue'}' does not look like a valid value for `color`"

帮助!

1 个答案:

答案 0 :(得分:1)

如果您想分配颜色,请使用 scale_color_manual

import pandas as pd
from plotnine import *

data = [[1, 4.5,True], [2, 4.25,False], [3, 3.75,False],[4, 3.5,True],[1, 4.0,False],[2, 3.75,False],[3, 4.0,False],[4, 4.25,True]]

df = pd.DataFrame(data, columns = ['col1', 'col2','col3'])

colors = {True:'#a54f7e', False:'grey'}  

(ggplot(df, aes(x = "col1", y="col2", color = "col3")) +
     geom_jitter(size = 3) +
     scale_color_manual(values = colors))

enter image description here

相关问题