Line colour of two y-axis plot

10 次查看(过去 30 天)
Hi All,
I am plotting multiple lines for y-axis 1 and another line as y-axis 2 using the yyaxis command. If I plot only the first set of data as a single plot with one y-axis, the lines are plotted with different colours. But when I plot using yyaxis left for one set of data, and plot another line for yyaxis left, the data plotted against the first y-axis comes out all the same colour which is not what I want. From below, if I only run 'plot(xdata,y1data)' I get 10 lines all different colours. But if I run from 'yyaxis left' to the end I get 10 lines of the same colour (with symbols which I don't want), and one line of a different colour plotted against the second y-axis. How do I get the multi-colour lines back for the first plot? Thanks.
y1data = magic(10);
y2data = randi([-10 10],10,1);
xdata = [1:10]';
yyaxis left
plot(xdata,y1data);
yyaxis right
plot(xdata, y2data);
  2 个评论
Star Strider
Star Strider 2019-12-23
That may not be possible. The whole point of assigning one colour to one y-axls and another colour to the other y-axis is to remove any ambiguity about which y-axis scale the lines refer to.
If you want them in different colours, you will have to plot them in different figures.
Wah On Ho
Wah On Ho 2019-12-23
OK. What I have is a set of data from multiple sensor outputs to be plotted against the left y-axis. I also have a set of temperature readings to be plotted aganist the right y-axis. Together it would show how a set of sensors were responding as the temperature varied, of course the variations from sensors and temperature are on different scales of response, hence my need for two y-axes plots.
Yes I could have plotted the sensor data individually and then added the temperature to the 2nd y-axis. I thought perhaps there was a short-cut but maybe not.
Thank you for considering my question.

请先登录,再进行评论。

采纳的回答

Adam Danz
Adam Danz 2019-12-23
编辑:Adam Danz 2019-12-23
Set the LineStyleOrder and ColorOrder properties after selecting the Left/Right yyaxes
y1data = magic(10);
y2data = randi([-10 10],10,1);
xdata = [1:10]';
yyaxis left
set(gca, 'LineStyleOrder', '-', 'ColorOrder', jet(10))
plot(xdata,y1data);
yyaxis right
set(gca, 'LineStyleOrder', '-', 'ColorOrder', jet(10))
plot(xdata, y2data);
You can replace the jet colormap with any other colormap or you can create your own colormap by using an nx3 matrix of RGB values.
You can replace the '-' with any line style or a cell array of line styles to cycle through.
  4 个评论
Wah On Ho
Wah On Ho 2019-12-23
Sorry, yes, I was too focussed on the code to look beyond it! Thanks again.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by