Python:将更改的浮点值绘制为颜色

Python:将更改的浮点值绘制为颜色,python,matplotlib,Python,Matplotlib,我有三种颜色的元组列表: v = ([0.16091847477176702, 0.4337815920028113, 0.40529993322542174) (0.15019057645364922, 0.40486281920262385, 0.44494660434372696) (0.14017787135673926, 0.44453863125578225, 0.4152834973874785) (0.13083267993295664, 0.41490272250539673,

我有三种颜色的元组列表:

v = ([0.16091847477176702, 0.4337815920028113, 0.40529993322542174)
(0.15019057645364922, 0.40486281920262385, 0.44494660434372696)
(0.14017787135673926, 0.44453863125578225, 0.4152834973874785)
(0.13083267993295664, 0.41490272250539673, 0.45426459756164661)
(0.17697859494133705, 0.36303988219222216, 0.45998152286644078)
(0.16591743275750348, 0.40284988955520828, 0.43123267768728824)
(0.16591743275750348, 0.40284988955520828, 0.43123267768728824)
(0.16591743275750348, 0.40284988955520828, 0.43123267768728824)
(0.15406618756053894, 0.37407489744412198, 0.47185891499533911)
(0.20019069588580043, 0.32419824445157241, 0.47561105966262723)
(0.20019069588580043, 0.32419824445157241, 0.47561105966262723)
(0.17349860310102702, 0.34763847852469609, 0.47886291837427691)
(0.16193202956095856, 0.39112924662304965, 0.44693872381599176)]

我不恰当地将元组中的每个值解释为一种颜色(例如:多黄、多红、多蓝),因此每个元组一起给我一种颜色(作为第一个、第二个和第三个元组的混合)。是否可以使用matplotlib绘制颜色的变化?我最初的想法是使用RGB,但RGB需要整数,这些数字的精度非常重要。有人有什么建议吗?

0到1之间的浮动对于matplotlib中的rgb来说是很好的值。这里有一个小例子

import numpy as np
import matplotlib.pyplot as plt

v = [(0.16091847477176702, 0.4337815920028113, 0.40529993322542174),
(0.15019057645364922, 0.40486281920262385, 0.44494660434372696),
(0.14017787135673926, 0.44453863125578225, 0.4152834973874785),
(0.13083267993295664, 0.41490272250539673, 0.45426459756164661),
(0.17697859494133705, 0.36303988219222216, 0.45998152286644078),
(0.16591743275750348, 0.40284988955520828, 0.43123267768728824),
(0.16591743275750348, 0.40284988955520828, 0.43123267768728824),
(0.16591743275750348, 0.40284988955520828, 0.43123267768728824),
(0.15406618756053894, 0.37407489744412198, 0.47185891499533911),
(0.20019069588580043, 0.32419824445157241, 0.47561105966262723),
(0.20019069588580043, 0.32419824445157241, 0.47561105966262723),
(0.17349860310102702, 0.34763847852469609, 0.47886291837427691),
(0.16193202956095856, 0.39112924662304965, 0.44693872381599176)]

y = np.arange(len(v))
for i in range(len(v)):
    plt.plot(y[i], 0, marker='o', ls='', c=v[i], markersize=20)

plt.show()
结果是:


这很微妙,但很有效

RGB组件是整数,因此您将始终失去精度,您将产生1/256的误差,您需要进行一些图像处理。从数据中减去平均值,将-1和1之间的值归一化,然后在3D中绘制散点图,我认为这会给出一些直觉。你能描述一下你的问题吗?你想达到什么目的?@shryaspimpalgaonkar我想看看颜色随时间的变化,其中v[0]是时间t0,v[1]是时间t1,我认为我的建议应该很有效。好的,我看到第一列中的值在0.2到0.13之间-这里需要多少精度小数?请注意,人眼无法分辨相差小于1/256的颜色,因此如果这是关于可视化,您提到的RGB限制是没有意义的。还请注意,Matplotlib能够接受浮点值,因此无需先转换为整数。总的来说,问题到底出在哪里还不是很清楚。