plot one curve with two colors
Show older comments
Dears, am plotting the response of an sensor with one curve in real time, and i want to plot this curve with two colors, depending on the values of the returned data, when data<500 the curve is plotted in "red" when data>=500 the curve is plotted in "green" so i need to plot one curve with two colors. best regards
Accepted Answer
More Answers (1)
Kelly Kearney
on 16 Jan 2015
If you plot with a patch rather than a line, you can get the color change. Depending on how much the y-values oscillate across the boundaries, you may need to upsample your data first to get a clean color transition (this particular example needed a lot of upsampling, since the values switch back and forth so much... a smoother curve won't need that):
x = 1:100;
y = rand(1,100)*1000;
xi = linspace(x(1), x(end), 5000);
yi = interp1(x,y,xi);
ci = yi < 500;
h = patch([xi NaN], [yi NaN], [ci NaN]);
set(h, 'edgecolor', 'interp');
colormap([0 1 0; 1 0 0]);
1 Comment
gregor alexander
on 16 Jan 2015
Categories
Find more on Line Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!