【问题标题】:Colors for Python (seaborn): colors without adding to DataFramePython (seaborn) 的颜色:不添加到 DataFrame 的颜色
【发布时间】:2023-04-02 10:03:01
【问题描述】:

slov = {'People': {0: 'Ivan', 1: 'John', 2: 'Peter', 3: 'Ming'}, 'Country':{0: 'Russia', 1: 'USA', 2: 'USA', 3: 'China'},\
    'Height': {0: 181, 1: 175, 2: 174, 3: 173}}

我想看看这张照片

但我不知道该怎么做。我的意思是我想给俄罗斯人穿红色,给美国人穿绿色,给中国人穿黄色。

我正在尝试寻找解决方案:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
sns.set(style="white")

slov = {'People': {0: 'Ivan', 1: 'John', 2: 'Peter', 3: 'Ming'}, 'Country':{0: 'Russia', 1: 'USA', 2: 'USA', 3: 'China'},\
'Height': {0: 181, 1: 175, 2: 174, 3: 173}}

obj = pd.DataFrame(slov)

palette=["g", "b", "r"]
obj['Color']='r'

row_index = obj.Country == 'Russia'
obj.loc[row_index, 'Color'] = 'r'

row_index = obj.Country == 'USA'
obj.loc[row_index, 'Color'] = 'g'

row_index = obj.Country == 'China'
obj.loc[row_index, 'Color'] = 'y'


g = sns.factorplot(x="People", y="Height",  data=obj, kind='bar', palette=obj['Color'])

plt.show()

也许我的解决方案不是很好。我为 DataFrame 添加了颜色。也许我们可以写得更好。也许我不需要为我的 DataFrame 添加颜色(看起来不太正确。)。但是如何在不将这些颜色添加到我的 DataFrame 的情况下解决我的任务?

【问题讨论】:

    标签:
    python
    pandas
    colors
    seaborn