Есть ли способ построить прозрачные точки данных при использовании палитры?
Если вы отметите help palette
, вы не найдете (или я упустил) утверждение о прозрачности в палитре , Похоже, вы можете установить палитру по-разному для RGB
, но не для ARGB
(A = альфа-канал для прозрачности). Итак, я предполагаю, что с палитрой невозможно иметь прозрачность (пожалуйста, поправьте меня, если я ошибаюсь). В качестве обходного пути вы должны установить прозрачность «вручную», установив цвет с некоторой прозрачностью. Вы можете найти формулы позади палитр, набрав show palette rgbformulae
.
В следующих примерах создается график со случайными точками в xrange[0:1]
и yrange[0:1]
и размером случайных точек (от 2 до 6) и случайным прозрачность (от 0x00
до 0xff
). Цвет определяется x
в соответствии с вашей «ручной палитрой». Я надеюсь, что вы можете адаптировать этот пример к вашим потребностям.
Код:
### "manual" palette with transparency
reset session
# These are the rgb formulae behind palette 22,13,-22
set angle degrees
r(x) = 3*x-1 < 0 ? 0: (3*x-1 > 1) ? 1 : 3*x-1
g(x) = sin(180*x)
b(x) = 1-(3*x-1) < 0 ? 0: (1-(3*x-1) > 1) ? 1 : 1-(3*x-1)
set xrange [0:1]
set yrange[-0.1:1.1]
RandomSize(n) = rand(0)*4+2 # random size from 2 to 6
RandomTransp(n) = int(rand(0)*0xff)<<24 # random transparency from 0x00 to 0xff
myColor(x) = (int(r(x)*0xff)<<16) + (int(g(x)*0xff)<<8) + int(b(x)*0xff) + RandomTransp(0)
set samples 200
plot '+' u (x=rand(0)):(rand(0)):(RandomSize(0)):(myColor(x)) w p pt 7 ps var lc rgb var not
### end of code
Результат:
![enter image description here](https://i.stack.imgur.com/nSVRn.png)