Я запускаю симуляцию, в которой два типа агентов соревнуются друг с другом. Назовем этих агентов «красными» и «синими». Возможны три исхода: выигрывает красный, выигрывает синий или проигрывают все. Предположим также, что система зависит от двух параметров: X и Y.
Что я хотел бы сделать, так это создать график псевдоцвета, который кодирует результат как функцию X и Y.
Оттенок каждой точки — это вероятность того, что выиграет либо красный, либо синий, при условии, что кто-то выиграет. Если синий всегда побеждает, то это синий; если красное всегда побеждает, оно красное; и т. д.
Насыщение — это вероятность того, что кто-то выиграет. Таким образом, если никто никогда не выигрывает при некотором значении X и Y, эта точка будет серой (по крайней мере, в модели HSV).
РЕДАКТИРОВАТЬ: Допустим, мы используем модель HSV, закодированную здесь а>. (Это не обязательно должно быть так, но предположим, что это так.) Чистый синий — это (240, 100, 100) в пространстве HSV, а чистый красный — (360, 100, 100). Предположим также, что красные выигрывают в 50% случаев, синие — в 25%, и никто не выигрывает в 25% случаев. Тогда эта точка будет (330, 75, 100).
Обратите внимание, что я не беспокоюсь о преобразовании из HSV в RGB — для этого я могу просто использовать col2rgb(hsv(...))
. Вопрос в самом сюжете. Насколько я могу судить, функция image() может кодировать только один канал информации; это два канала информации.
Кроме того, результат является непрерывной функцией X и Y, поэтому я хочу интерполировать значения. (Для этого я использую пакет 'akima', если это имеет значение.) Отсюда решение, которое я нашел здесь мне не помогает (я думаю).
Я рад использовать любой пакет. Я также рад не использовать R, пока результат красивый и не слишком сложный.
Спасибо за любую помощь, которую вы можете предложить.