how to give the lines color based on the distanse
2 views (last 30 days)
My plot below shows the oscillatory displacement of particles vs time in a pipe. Each line coreponds to each particle. Particles are released in different position from the center of pipe along the radius. How can I show each line in this plot in a different color?(My goal is the line's color changes with the distance from the center of pipe(r)).
r=sqrt(Xp^2+Yp^2): position of each particle in rdaial direction.Xp and Yp are the particle position in cartesian.
Image Analyst on 16 Jul 2020
Try this (untested)
cmap = jet(length(Xp));
r = sqrt(Xp .^ 2 + Yp .^ 2);
r = round(rescale(r, 1, length(Xp)));
for k = 1 : length(Xp)
thisColor = cmap(r(k), :);
plot(Xp(k), Yp(k), '.', 'Color', thisColor, 'MarkerSize', 4)
It will plot dots so make sure you have enough points to make the dots be adjacent and look like a line. You can adjust the MarkerSize if you need to.
More Answers (1)
Bruno Luong on 18 Jul 2020
Edited: Bruno Luong on 18 Jul 2020
% Generate 20 functions
r=sqrt((x-pi).^2+(y).^2);% encoding color as circle centered at (pi,0)
% Function from https://www.mathworks.com/matlabcentral/fileexchange/60402-plotcolor
jet,[0 3]) % <- colormap and range