色标在matplotlib和plottable中

文章讲述了如何使用matplotlib库创建带有颜色区分的散点图,根据数值大小变化颜色,并在plottable中以表格形式展示,同时满足0值为白色,正负值颜色区别的需求。作者尝试了不同的归一化方法和plottable的cmap功能,最终确定TwoSlopeNorm提供更好的负值区分度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

是这样的,我有一个数组[-4.4, -2.8, -2.6, -2.2, -1.1, 1.1, 1.2, 1.3, 3.6, 6.0, 6.4, 12.3],它需要绘制散点图,点的颜色来代表数值大小;同时,也需要在plottable上作为一列显示,同样用颜色来代表数值的大小。
还有两个额外的需求:一、不同的数值的颜色要有区分度;二、0值需要是白色,正值为暖色系,负值为冷色系,从视觉上明显区分正负值。

一、matplotlib色标的选择

matplotlib官方提供了非常多的色标可供选择,可见网址。

按照我的需求,我选择了Diverging colormaps中的PiYG。
在这里插入图片描述
把色标反过来,只需要加 _r。用如下代码查看色标及反过来的色标。

import matplotlib.pyplot as plt
import numpy as np
gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient))
plt.imshow(gradient, aspect='auto', cmap='PiYG')
plt.show()
plt.imshow(gradient, aspect='auto', cmap='PiYG_r')
plt.show()

结果如下
在这里插入图片描述

二、画散点图

1、直接画图

import matplotlib
y = [-4.4, -2.8, -2.6, -2.2, -1.1, 1.1, 1.2, 1.3, 3.6, 6.0, <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值