Предполагая, что вас не интересует цвет фактической линии, но маркеры. Используйте plot
в сочетании с scatter
.
Представьте следующий пример данных:
t = 0:pi/20:2*pi;
x = sin(t);
y = cos(t);
z = t;
plot3(x,y,z);
Подготовленный в 2D-плоскости:
plot(x,y); hold on
scatter(x,y,300,z); hold off
приводит:
От вашего комментария: если у вас достаточно данных, и вам не нужна линия, просто используйте scatter
, это именно то, что вам нужно.
Другая возможность вдохновленный solution on MATLAB Central, учитывая как линии и маркеры.
surface([x;x],[y;y],zeros(2,length(t)),[z;z],'EdgeColor','flat',...
'Marker','o','MarkerSize',10,'MarkerFaceColor','flat');
сделать цвет в зависимости от z
довольно легко, для изменения размеров маркеров вы определенно нуждаетесь в scatter
функции:
surface([x;x],[y;y],zeros(2,length(t)),[z;z],'EdgeColor','flat'); hold on
MarkerSize = round(z*1000)+1;
scatter(x,y,MarkerSize,z,'.','MarkerFaceColor','auto'); hold off
Ибо на z
в зависимости, увеличивая прозрачность, это немного сложно. Вы можете найти обходной путь here, используя функцию patch
.
вы хотите линию, чтобы изменить цвет, а также или только точки? – thewaywewalk
Предпочтительно и то и другое, но у меня достаточно данных, чтобы я мог начертить только точки без соединительных линий. – Tim
Для полноты я добавил несколько замечаний относительно зависимой интенсивности и толщины. – thewaywewalk