为图例 matplotlib 使用不同的数据
use different data for legend matplotlib
我正在尝试创建一个对应于数据框中其他数据的图例,而不是用于创建条形图的列。
我的理解是 matplotlib 图例使用数据输入来分配图例,因为我输入一列 (x) 和一列 (y) 我只得到一个图例。
我正在尝试使用“位置”列作为我的图例输入,这样我将有 3 个图例输入 ['bot'、'mid'、'top'] 并分配了各自的条形图。不知道如何。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'wins': [8,6,2],
'player': ['x','y','z'],
'position' : ['bot', 'mid', 'top'],
'color': ['red', 'blue', 'green']})
bar = plt.bar(df["player"], df["wins"], color = (df["color"]))
bar = plt.legend(labels =df['position'])
results of code
使用 seaborn,可以这样写:
import seaborn as sns
sns.barplot(data=df, x='player', y='wins', hue='position', dodge=False,
palette=dict(zip(df['position'], df['color'])))
我正在尝试创建一个对应于数据框中其他数据的图例,而不是用于创建条形图的列。 我的理解是 matplotlib 图例使用数据输入来分配图例,因为我输入一列 (x) 和一列 (y) 我只得到一个图例。 我正在尝试使用“位置”列作为我的图例输入,这样我将有 3 个图例输入 ['bot'、'mid'、'top'] 并分配了各自的条形图。不知道如何。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'wins': [8,6,2],
'player': ['x','y','z'],
'position' : ['bot', 'mid', 'top'],
'color': ['red', 'blue', 'green']})
bar = plt.bar(df["player"], df["wins"], color = (df["color"]))
bar = plt.legend(labels =df['position'])
results of code
使用 seaborn,可以这样写:
import seaborn as sns
sns.barplot(data=df, x='player', y='wins', hue='position', dodge=False,
palette=dict(zip(df['position'], df['color'])))