Two graphs in one plot with own RGB hex or decimal code
Show older comments
Hi, I would like to set my own RGB color to my graphs. I did it with single plots, this works, but I can't get it working with two graphs in one plot and own color codes. How? Here is my single plot code:
% figure(6);
plot(f,Yr,...
'LineWidth',1,...
'color', [0/255 177/255 175/255])
xlim([20e6 30e6])
%ylim([4 5])
grid on
title('Admittance Y_r')
xlabel('f[Hz]')
ylabel('Yr(f)')
And here is the plot I would like to set my own RGB color code as well, but doesn't matter how I change the syntax, it doesn't work on the same principle like in the single graph plot.
figure(7);
plot(f,Bn,'green',f,Gn,'black',...
'LineWidth',1)
xlim([20e6 30e6])
%ylim([4 5])
grid on
title('Conductance Gn and susceptance Bn')
xlabel('f[Hz]')
ylabel('Bn and Gn')
Can somebody help me please. I googled for so long, but all "solutions" failed. I'm using MATLAB R2017a with a student license.
best regards Jogibaer
Answers (1)
Adam
on 14 Jun 2017
You'd have to plot them in two instructions to do that, e.g.
plot( hAxes, x1, y1, 'color', [0 0.5 0] );
hold( hAxes, 'on' );
plot( hAxes, x2, y2, 'color', [0 0 0.5] );
5 Comments
Jogibaer
on 14 Jun 2017
Steven Lord
on 14 Jun 2017
What is the full text of the error message you received (all the text displayed in red)?
You need to define hAxes as e.g.
figure(7); hAxes = gca;
...
I forgot to mention that, but whenever I give help regarding plotting I always make a point of including the axes handle argument because you should get used to always using this. In your case it isn't defined.
Relying on the current axes is not robust. I do use gca in the example snippet above, which is slightly more lazy than to be totally explicit, but I only use this when the instruction is on a single line like that where it is (virtually?) impossible that 'gca' could be any axes other than the one for the current figure.
Obviously if you have multiple axes you would deal with these differently and define exactly which one to plot on.
Alternatively you can just remove the hAxes argument from all those plot and hold statements, but I don't recommend this approach.
Adam
on 15 Jun 2017
It is very useful to get used to graphic object handles in Matlab and it is more intuitive now that they are proper visible objects. Anything you want to change on a plot you can just do so via the handle that you keep hold of (likewise axes etc) and you can play around with settings to see what you want by using, for example
inspect( hAxes )
and changing settings on there as you please. Then you can put them in code when you are happy. Also just typing
hAxes
on the command line will show you all the properties that you can edit.
Categories
Find more on Graphics Performance in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!