文章概要

本文详细介绍 Matplotlib 的颜色映射功能,包括:

  • 颜色映射类型
  • 颜色映射设置
  • 数据标准化
  • 颜色条

颜色映射类型

pcolormesh

import matplotlib.pyplot as plt
import numpy as np# 创建网格数据
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))# 使用 pcolormesh 绘制
plt.figure(figsize=(8, 6))
plt.pcolormesh(X, Y, Z, cmap='viridis')
plt.colorbar()
plt.title('pcolormesh 示例')
plt.show()

contourf

# 使用 contourf 绘制
plt.figure(figsize=(8, 6))
plt.contourf(X, Y, Z, levels=20, cmap='viridis')
plt.colorbar()
plt.title('contourf 示例')
plt.show()# 设置轮廓线
plt.contourf(X, Y, Z, levels=20, cmap='viridis')
plt.contour(X, Y, Z, levels=20, colors='k', alpha=0.5)
plt.colorbar()

imshow

# 使用 imshow 绘制
plt.figure(figsize=(8, 6))
plt.imshow(Z, cmap='viridis', origin='lower',extent=[-3, 3, -3, 3])
plt.colorbar()
plt.title('imshow 示例')
plt.show()# 设置插值方法
plt.imshow(Z, cmap='viridis', interpolation='bilinear')

scatter

# 创建散点数据
x = np.random.randn(100)
y = np.random.randn(100)
z = np.random.randn(100)# 使用 scatter 绘制
plt.figure(figsize=(8, 6))
plt.scatter(x, y, c=z, cmap='viridis')
plt.colorbar()
plt.title('scatter 示例')
plt.show()# 设置点大小
plt.scatter(x, y, c=z, cmap='viridis', s=100)

颜色映射设置

选择颜色映射

# 使用内置颜色映射
plt.pcolormesh(X, Y, Z, cmap='viridis')  # 默认颜色映射
plt.pcolormesh(X, Y, Z, cmap='plasma')   # 等离子体
plt.pcolormesh(X, Y, Z, cmap='inferno')  # 地狱
plt.pcolormesh(X, Y, Z, cmap='magma')    # 岩浆
plt.pcolormesh(X, Y, Z, cmap='cividis')  # 色盲友好# 使用反转的颜色映射
plt.pcolormesh(X, Y, Z, cmap='viridis_r')

创建自定义颜色映射

from matplotlib.colors import LinearSegmentedColormap# 创建自定义颜色映射
colors = ['#000000', '#ff0000', '#ffff00', '#ffffff']
cmap = LinearSegmentedColormap.from_list('custom_cmap', colors)# 使用自定义颜色映射
plt.pcolormesh(X, Y, Z, cmap=cmap)
plt.colorbar()
plt.title('自定义颜色映射')
plt.show()# 创建离散颜色映射
from matplotlib.colors import ListedColormap
colors = ['red', 'green', 'blue']
cmap = ListedColormap(colors)

第三方颜色映射

# 使用 seaborn 颜色映射
import seaborn as sns
plt.pcolormesh(X, Y, Z, cmap=sns.color_palette("husl", 256))# 使用 colorcet 颜色映射
import colorcet as cc
plt.pcolormesh(X, Y, Z, cmap=cc.cm.rainbow)

数据标准化

线性标准化

from matplotlib.colors import Normalize# 创建标准化对象
norm = Normalize(vmin=-1, vmax=1)# 使用标准化
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=norm)
plt.colorbar()
plt.title('线性标准化')
plt.show()# 自动标准化
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=Normalize())

对数标准化

from matplotlib.colors import LogNorm# 创建对数标准化对象
norm = LogNorm(vmin=0.1, vmax=10)# 使用对数标准化
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=norm)
plt.colorbar()
plt.title('对数标准化')
plt.show()# 自动对数标准化
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=LogNorm())

其他标准化方法

from matplotlib.colors import PowerNorm, SymLogNorm# 使用幂次标准化
norm = PowerNorm(gamma=0.5)
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=norm)# 使用对称对数标准化
norm = SymLogNorm(linthresh=0.1)
plt.pcolormesh(X, Y, Z, cmap='viridis', norm=norm)

颜色条

添加颜色条

# 基本颜色条
plt.pcolormesh(X, Y, Z, cmap='viridis')
plt.colorbar()# 设置颜色条位置
plt.colorbar(orientation='horizontal')
plt.colorbar(location='left')
plt.colorbar(location='right')

自定义颜色条

# 设置颜色条标签
plt.colorbar(label='数值')# 设置颜色条刻度
plt.colorbar(ticks=[-1, 0, 1])# 设置颜色条格式
plt.colorbar(format='%.1f')# 设置颜色条大小
plt.colorbar(fraction=0.046, pad=0.04)

颜色条位置

# 使用 axes 位置
cbar_ax = plt.axes([0.85, 0.1, 0.05, 0.8])
plt.colorbar(cax=cbar_ax)# 使用 GridSpec
import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(1, 2, width_ratios=[20, 1])
ax = plt.subplot(gs[0])
cbar_ax = plt.subplot(gs[1])
plt.colorbar(cax=cbar_ax)

总结

颜色映射部分涵盖了:

  1. 颜色映射类型(pcolormesh、contourf、imshow、scatter)
  2. 颜色映射设置(选择颜色映射、创建自定义颜色映射、第三方颜色映射)
  3. 数据标准化(线性标准化、对数标准化、其他标准化方法)
  4. 颜色条(添加颜色条、自定义颜色条、颜色条位置)

掌握这些颜色映射功能对于创建专业的可视化图表至关重要,它可以帮助我们:

  • 展示数据的分布特征
  • 突出数据的变化趋势
  • 增强图表的可读性
  • 提升图表的专业性

建议在实际项目中注意:

  • 选择合适的颜色映射
  • 考虑数据标准化方法
  • 注意颜色条的位置和样式
  • 保持图表的清晰度
  • 考虑色盲友好性
  • 注重整体美观性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910073.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910073.shtml
英文地址,请注明出处:http://en.pswp.cn/news/910073.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DB2中合理使用INCLUDE关键字创建索引

DB2中合理使用 INCLUDE 关键字创建索引 1. 为何还需要 INCLUDE?——从索引的两大痛点说起 查询想“只读索引不回表”,却又不想把列都做键 → 联合索引空间膨胀,更新放大。唯一索引定位快,但只能返回键列数据 → 仍需 I/O 跳回数据…

基于Spring Boot的民宿管理系统设计与实现

目录 一.🦁前言二.🦁开源代码与组件使用情况说明三.🦁核心功能1. ✅算法设计2. ✅Spring Boot框架3. ✅Vue.js框架4. ✅部署项目 四.🦁演示效果1. 管理员模块1.1 浏览后台首页1.2 预订信息管理1.3 入住信息管理1.4 退房信息管理1.…

大数据系统架构实践(一):Zookeeper集群部署

大数据系统架构实践(一):Zookeeper集群部署 文章目录 大数据系统架构实践(一):Zookeeper集群部署一、Zookeeper简介二、部署前准备三、部署Zookeeper集群1. 下载并解压安装包2. 配置zoo.cfg3. 设置日志目录…

《道德经》:探寻古老智慧中的哲学之光

我强烈推荐4本可以改变命运的经典著作: 《寿康宝鉴》在线阅读白话文《欲海回狂》在线阅读白话文《阴律无情》在线阅读白话文《了凡四训》在线阅读白话文 《道德经》作为道家经典,短短五千言,却字字珠玑,蕴含着超越时空的哲学智慧。…

科技赋能民生:中建海龙为民生改善注入新动力

在社会发展的进程中,民生改善始终占据着核心地位。住房、基础设施建设等民生领域的进步,直接关系到民众的生活质量与幸福感。中建海龙科技有限公司(以下简称“中建海龙”)作为建筑行业的创新引领者,凭借其强大的科技实…

BI 赋能,打造数据可视化看板新体验

BI 赋能,打造数据可视化看板新体验 引言 在当今数字化时代,数据成为企业决策的重要依据。如何从海量的数据中提取有价值的信息,并以直观、易懂的方式呈现出来,是企业面临的重要挑战。商业智能(BI)工具的出…

vue2设置自定义域名跳转

需求:首次登录域名为aa.com,之后登录系统后在系统内某个模块设置三级域名为second,之后退出登录到aa.com,登录进入系统后域名自动变为second.aa.com,最后退出的域名也是second.aa.com,通过不同的域名配置动态的登录页面…

“地标界爱马仕”再拓疆域:世酒中菜联袂赤水金钗石斛定义中国GI

“地标界爱马仕”再拓疆域:世酒中菜联袂赤水金钗石斛,定义中国GI奢侈品新高度 ——中世国际与贵州斛满多战略合作签约仪式在赤水举行 赤水市,2025年5月18日——被誉为“地标界爱马仕”的顶级奢侈品牌世酒中菜 (世界酒中国菜全球…

零基础、大白话,Vue3全篇通俗疗法(上):基础知识【看得懂】

前言 最近有个小朋友想了解Vue前端技术,但他只懂一些HTML基础,让我用最简单的方式讲解。于是就有了这篇面向初学者的博文。 老手请绕行,本文专为新手准备。如果发现用词不当的地方欢迎留言指正,觉得对新手有帮助的话请收藏点赞。 …

JavaScript性能优化实战

JavaScript性能优化实战技术文章大纲 性能优化的重要性 解释为什么性能优化对用户体验和业务指标至关重要讨论核心Web指标(LCP、FID、CLS)与JavaScript性能的关系 代码层面优化 减少DOM操作,使用文档片段或虚拟DOM避免频繁的重绘和回流&a…

考研英语作文评分标准专业批改

考研英语作文专业批改经过官方评分标准严格对标,彻底改变你的作文提升方式,打开 懂试帝小程序 直达批改。 🎯 批改服务核心优势 ✨ 官方标准严格对标 完全按照考研英语官方五档评分制,从内容完整性、组织连贯性、语言多样性到语…

智能群跃小助手发布说明

1.初次登陆需要授权码 2.社群维护页面 3.产品营销页面

SAM2论文解读-既实现了视频的分割一切,又比图像的分割一切SAM更快更好

code:https://github.com/facebookresearch/sam2/tree/main demo:https://sam2.metademolab.com/ paper:https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/ 这是SAM 这是SAM2 Facebook出品,继SAM在图像上分割…

WPF 的RenderTransform使图标旋转180°

只是记录一下思想&#xff1a; 本来想找两个对称的图标给按钮用&#xff0c;但是另一个找不到&#xff0c;就想到可不可以旋转180实现另一个图标的效果&#xff0c;问了一下DeepSeek&#xff1a; <Path Width"30" Height"30" Margin"1"Data…

Matplotlib 绘图库使用技巧介绍

目录 前言 Matplotlib 简介 快速入门 图形结构解剖 常用绘图函数 子图与布局 单行多列子图&#xff1a; 网格布局&#xff1a; 自定义位置&#xff1a; 样式与标注 中文字体与科学计数 图例、网格、坐标轴 动态图与动画 三维绘图 常见问题与技巧 前言 Matplotli…

【Java基础算法】1.相向指针练习

📘博客主页:程序员葵安 🫶感谢大家点赞👍🏻收藏⭐评论✍🏻 一、两数之和 Ⅱ(167) 1.1 题目介绍 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 nu…

“开放原子园区行”太原站:openKylin以开源之力,赋能产业发展

在数字化与智能化浪潮驱动下&#xff0c;开源技术已成为全球科技创新与产业升级的核心引擎&#xff0c;并为培育新质生产力开辟关键路径。为加速开源生态建设&#xff0c;赋能区域经济高质量发展&#xff0c;由开放原子开源基金会、山西省工业和信息化厅、山西转型综合改革示范…

【Elasticsearch】自定义相似性算法

在 Elasticsearch 中&#xff0c;可以通过自定义相似度算法来优化搜索结果的相关性。以下是几种常见的自定义相似度算法的方法&#xff1a; 1. 使用内置相似度算法 Elasticsearch 默认使用 BM25 算法&#xff0c;但也可以切换到其他内置的相似度算法&#xff0c;如 TF-IDF 或布…

【对比】DeepAR 和 N-Beats

1. DeepAR 1.1 核心思想 提出者&#xff1a;亚马逊&#xff08;Amazon&#xff09;团队于2018年提出。目标&#xff1a;针对多变量时间序列进行概率预测&#xff08;Probabilistic Forecasting&#xff09;&#xff0c;输出预测值的分布&#xff08;如均值、方差、置信区间&a…

Spring Boot单元测试终极指南:从环境搭建到分层测试实战

Spring Boot测试终极指南&#xff1a;从环境搭建到分层测试实战 掌握MockMvc与分层测试策略&#xff0c;让你的代码质量提升一个维度 一、环境搭建&#xff1a;Maven依赖深度解析 Spring Boot测试的核心依赖在pom.xml中配置如下&#xff1a; <dependencies><!-- 核心…