首页 > 解决方案 > Matplotlib:如何根据列值为散点图圆圈赋予颜色

问题描述

我有包含 3 列的数据:

zone | pop1 | pop2
----   ----   ----
3      4500   3800
2      2800   3100
1      1350   1600
2      2100   1900
3      3450   3600

我想绘制 和 的散点图pop1pop2圆圈的颜色基于 的值zone

到目前为止,我有以下代码:

df = pd.read_csv(file_path)
plt.scatter(df['pop1'],df['pop2'], s = 1)

我怎样才能给出不同的颜色,比如说红色、绿色和蓝色,分别对应于区域值 1、2 和 3?

标签: pythonmatplotlibscatter-plot

解决方案


您可以使用 seaborn 包,它使用 matplotlib 包装器。它具有多种功能和美丽的情节。这是您问题的简单示例。

import matplotlib.pyplot as plt
%matplotlib inline 
import seaborn as sns
import pandas as pd

data = pd.DataFrame({'col1':[4500,2800,1350,2100,3450],
             'col2':[3800,3100 ,1650,1900,3600],
             'col3':[3,2,1,2,3]})

sns.lmplot(data=data, x='col1', y='col2', hue='col3', 
                   fit_reg=False, legend=True)
#fit_reg is use to fit a line for regression, we need only dots.

在此处输入图像描述


推荐阅读