Python Matplotlib-如何向图例添加标签

Python Matplotlib-如何向图例添加标签,python,pandas,matplotlib,legend,Python,Pandas,Matplotlib,Legend,在这里,我试图通过在x轴上绘制年龄和y轴上绘制票价来区分数据是否为男性,我想在图例中显示两个标签,用各自的颜色区分男性和女性。有人能帮我做到这一点吗 代码: 您可以使用构建在matplotlib之上的seaborn库来执行所需的确切任务。您只需在sns.scatterplot中传递hue参数,就可以散点打印'Age'与'Fare'并通过'Sex'对其进行颜色编码,如下所示: import matplotlib.pyplot as plt import seaborn as sns plt.fi

在这里,我试图通过在x轴上绘制年龄和y轴上绘制票价来区分数据是否为男性,我想在图例中显示两个标签,用各自的颜色区分男性和女性。有人能帮我做到这一点吗

代码:


您可以使用构建在
matplotlib
之上的
seaborn
库来执行所需的确切任务。您只需在
sns.scatterplot
中传递
hue
参数,就可以散点打印
'Age'
'Fare'
并通过
'Sex'
对其进行颜色编码,如下所示:

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure()

# No need to call plt.legend, seaborn will generate the labels and legend
# automatically.
sns.scatterplot(df['Age'], df['Fare'], hue=df['Sex'])

plt.show()
Seaborn用更少的代码和更多的功能生成更好的绘图

您可以使用
pip安装seaborn
从PyPI安装
seaborn

请参阅:

方法 可用于控制要创建的图例条目的数量和创建方式 应该贴上标签

导入matplotlib.pyplot作为plt
作为pd进口熊猫
df=pd.read\u csv('https://sololearn.com/uploads/files/titanic.csv')
df['male']=df['Sex']='male'
sc1=plt.散射(df[‘年龄’],df[‘票价’],c=df[‘男性’)
plt.legend(handles=sc1.legend_elements()[0],labels=['male','female'])
plt.show()


供参考。

这可以通过在两个单独的数据帧中分离数据来实现,然后可以为这些数据帧设置标签

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('https://sololearn.com/uploads/files/titanic.csv')
subset1 = df[(df['Sex'] == 'male')]
subset2 = df[(df['Sex'] != 'male')]
plt.scatter(subset1['Age'], subset1['Fare'], label = 'Male')
plt.scatter(subset2['Age'], subset2['Fare'], label = 'Female')
plt.legend()
plt.show()

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('https://sololearn.com/uploads/files/titanic.csv')
subset1 = df[(df['Sex'] == 'male')]
subset2 = df[(df['Sex'] != 'male')]
plt.scatter(subset1['Age'], subset1['Fare'], label = 'Male')
plt.scatter(subset2['Age'], subset2['Fare'], label = 'Female')
plt.legend()
plt.show()