python - Matplotlib:如何根据列值为散点图圆圈赋予颜色
问题描述
我有包含 3 列的数据:
zone | pop1 | pop2
---- ---- ----
3 4500 3800
2 2800 3100
1 1350 1600
2 2100 1900
3 3450 3600
我想绘制 和 的散点图pop1
,pop2
圆圈的颜色基于 的值zone
。
到目前为止,我有以下代码:
df = pd.read_csv(file_path)
plt.scatter(df['pop1'],df['pop2'], s = 1)
我怎样才能给出不同的颜色,比如说红色、绿色和蓝色,分别对应于区域值 1、2 和 3?
解决方案
您可以使用 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.
推荐阅读
- python - aiohttp:对同一 URL 的多个请求返回身份验证错误,但 URL 正确
- java - 我应该如何记录参数“说”?
- android - 计算否定结果 - 数学失败
- c# - 为什么我的财产通知没有触发?
- memory - 什么是“昂贵”与“便宜”的内存?
- angular - 如何console.log里面订阅
- ruby - 未定义符号:rmpd_util_str_to_d -
- c++ - 为什么添加静态数据成员会导致链接器失败?
- docker - 如何使用 dockerized 邮件服务器从 Ubuntu 服务器发送邮件
- c++ - 是否可以在我的对象上停止 std::addressof?