如何在Python中基于二维(x,y)数据集绘制同心圆环彩色映射图
Python实现同心圆环彩色映射图代码
你可以直接用matplotlib的极坐标投影完成绘制,不需要额外安装复杂库,完整可运行代码如下:
import numpy as np import matplotlib.pyplot as plt # 你的输入数据集,这里用示例值填充,替换为你自己的Curve即可 Curve = [ [0, 0.5, 1, 1.5, 2], # 同心圆环半径 [-4.45, 3.8, 23.8, 2.9, 7.86] # 对应圆环的色码值 ] radius = Curve[0] color_val = Curve[1] # 构造极坐标网格,采样200个角度点保证圆环边缘平滑 theta = np.linspace(0, 2 * np.pi, 200) theta_grid, radius_grid = np.meshgrid(theta, radius) # 生成每个半径区间对应的颜色值矩阵 color_grid = np.zeros_like(theta_grid) for idx in range(len(color_val)): color_grid[idx, :] = color_val[idx] # 创建极坐标画布绘图 fig, ax = plt.subplots(subplot_kw={"projection": "polar"}) # 绘制颜色映射,cmap参数可更换为你需要的配色方案,比如coolwarm、rainbow等 mesh = ax.pcolormesh(theta_grid, radius_grid, color_grid, shading="nearest", cmap="viridis") # 可选配置:隐藏不需要的刻度,让效果更接近参考图 ax.set_xticklabels([]) # 隐藏周向角度刻度 # ax.set_yticklabels([]) # 如果不需要显示半径刻度可以取消这行的注释 # 添加色条说明数值对应关系 fig.colorbar(mesh, ax=ax, label="色码对应数值") plt.show()
补充说明
- 如果你需要调整配色,直接修改
pcolormesh的cmap参数即可,matplotlib官方支持的所有配色方案都可以直接用 - 要是觉得圆环边缘不够平滑,把
theta = np.linspace(0, 2 * np.pi, 200)里的200改大就行,比如改成360 - 如果你的半径不是等间隔的,代码也可以直接适配,不需要额外修改
内容的提问来源于stack exchange,提问作者user3482064
相关产品推荐
相关产品推荐

