You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Matplotlib实现散点图按region列颜色编码的方法

按地区给散点图数据点颜色编码的实现方法

下面给你两种常用Python绘图库的实现方案,都能基于CSV里的region列完成颜色编码:

第一步:读取CSV数据

先使用pandas读取你的数据文件,这是处理CSV最方便的工具:

import pandas as pd

# 替换成你的CSV文件路径
df = pd.read_csv('uk_cities_data.csv')

方案1:使用Matplotlib手动编码颜色

适合需要自定义颜色细节的场景:

import matplotlib.pyplot as plt
import numpy as np

# 获取所有唯一的地区类别
unique_regions = df['region'].unique()
# 生成对应数量的区分度高的颜色(用tab10色系,最多支持10种不同地区)
color_palette = plt.cm.tab10(np.linspace(0, 1, len(unique_regions)))

plt.figure(figsize=(10, 6))

# 循环每个地区,绘制对应的数据点
for idx, region in enumerate(unique_regions):
    # 筛选当前地区的数据
    region_data = df[df['region'] == region]
    # 替换x_column和y_column为你实际用来绘制散点的数值列(比如经度、纬度、人口等)
    plt.scatter(region_data['x_column'], 
                region_data['y_column'], 
                color=color_palette[idx],
                label=region,
                alpha=0.7)  # 透明度避免点重叠遮挡

# 添加图表元素
plt.legend(title='地区')
plt.xlabel('X轴数据名称')
plt.ylabel('Y轴数据名称')
plt.title('英国城市散点图(按地区颜色区分)')
plt.show()

方案2:使用Seaborn快速实现

Seaborn封装了分组逻辑,代码更简洁,适合快速出图:

import seaborn as sns
import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
# 直接指定hue参数为region列,自动完成颜色编码和图例
sns.scatterplot(data=df,
                x='x_column',  # 替换为你的X轴列名
                y='y_column',  # 替换为你的Y轴列名
                hue='region',
                palette='tab10',  # 颜色方案,可根据地区数量调整
                alpha=0.7)

plt.title('英国城市散点图(按地区颜色区分)')
plt.xlabel('X轴数据名称')
plt.ylabel('Y轴数据名称')
plt.legend(title='地区')
plt.show()

注意事项

  • 一定要把代码里的x_column和y_column替换成你CSV中实际用于绘制散点的数值列(比如经度、纬度、GDP、人口数等)
  • 如果你的地区数量超过10个,建议更换颜色方案,比如用palette='viridis'或者'plasma'这类渐变色系
  • alpha参数可以调整点的透明度,当数据点密集重叠时很有用

内容的提问来源于stack exchange,提问作者Lewis Hannaford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:12:41