Python: график изменения значений с плавающей точкой в виде цветов

1

У меня есть список кортежей из трех цветов:

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 берет целые числа, и точность этих чисел весьма важна. Есть ли у кого-нибудь предложения?

  • 3
    компоненты RGB являются целыми числами, поэтому вы всегда будете терять точность, ошибка, которую вы сделаете, будет 1/256
  • 0
    Вы должны сделать некоторую обработку изображения. Вычтите среднее из данных, нормализуйте значения между -1 и 1 и сделайте точечный график в 3D, я думаю, что это дало бы некоторую интуицию. Не могли бы вы подробнее рассказать о своей проблеме? что ты пытаешься достичь?
Показать ещё 3 комментария
Теги:
matplotlib

1 ответ

0

float между 0 и 1 являются хорошими значениями для rgb в matplotlib. здесь небольшой пример

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()

и результат:

Изображение 174551

он тонкий, но он работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню