MATLAB Answers

plot graphic with different color

1 view (last 30 days)
Giuseppe Dibenedetto
Giuseppe Dibenedetto on 14 Feb 2020
Commented: fred ssemwogerere on 14 Feb 2020
I have a data set made by two vector x and y.
I need to plot it to obtain an effect like the one attached.
So i need the lines to be green if y >= 0,
and red elsewhere.
Can anyone help me?
  1 Comment
Bob Thompson
Bob Thompson on 14 Feb 2020
If you have a pair of vectors, x and y, how are you getting lines? Are you using the x and y values of corresponding elements in the vectors to make cartesian coordinates? Are you connnecting these coordinates to each other or to a common point?
Do you have any code that you have written out so far?

Sign in to comment.

Answers (2)

fred  ssemwogerere
fred ssemwogerere on 14 Feb 2020
Hello, with logical indexing, you could create two separate pairwise sets of data, with one set comprised of plots of x versus y-data greater than zero, and another set comprised of x and y-values less than zero. These can then be plotted on the same figure but with different 'color' properties.
  1 Comment
fred  ssemwogerere
fred ssemwogerere on 14 Feb 2020
Something like:
% Assuming your 'x' and 'y' vectors as;
x=[3 2 4 3 5 1];y=[-1 3 -5 2 -3 6];
% For y>0, use logical indexing to create separate set, while also choosing the corresponding values in 'x'
% Do the same for y<0
% Go ahead and plot (assuming you are using the 'plot' function)
hold on
hold off

Sign in to comment.

Bob Thompson
Bob Thompson on 14 Feb 2020
If you're using the plot command, it is relatively easy to define a different color for a plot. Setting the condition where this color applies is more difficult, and requires we have a better understanding of your application to answer.
plot(x,y,'g'); % Plot the x and y values as cartesian coordinates with a green line connecting them.




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!