Effacer les filtres
Effacer les filtres

How to put in color a certain part of the background in a plot with matlab?

254 vues (au cours des 30 derniers jours)
afrya
afrya le 16 Jan 2014
Commenté : Jérôme le 18 Août 2022
Hello,
I would like to draw in grey color a certain part of the background in a plot. I know how to change the background color of the whole plot.I used this code after the plot function:
HANDLE = gca
get( HANDLE );
set( HANDLE, 'Color', [0.7,0.7,0.7] )
Exemple: y=x^2
How can I do to draw the blue part in grey and to leave the other parts in white?

Réponse acceptée

Mischa Kim
Mischa Kim le 16 Jan 2014
Modifié(e) : Mischa Kim le 16 Jan 2014
Try rectangle. First, draw the rectangle, then the line plots (using hold on, of course).
  4 commentaires
Claire Andreasen
Claire Andreasen le 17 Août 2020
if you're using a grid, how would you make the grid appear overtop the rectangle?
Jérôme
Jérôme le 18 Août 2022
@Claire Andreasen, you can use set(gca, "Layer", "top") after rectangle and before plot.
Below is an example comparing without and with that line. It also solves the issue that the rectangle appears above the axes black line.
figure
subplot(2,1,1)
rectangle(Position=[0,-0.5,0.8,1], FaceColor=[0.9 0.9 0.9], EdgeColor=[0.9 0.9 0.9])
hold on; grid on; grid minor
plot(-1:0.01:1, (-1:0.01:1).^2)
subplot(2,1,2)
rectangle(Position=[0,-0.5,0.8,1], FaceColor=[0.9 0.9 0.9], EdgeColor=[0.9 0.9 0.9])
hold on; grid on; grid minor
set(gca, "Layer", "top")
plot(-1:0.01:1, (-1:0.01:1).^2)

Connectez-vous pour commenter.

Plus de réponses (1)

Jérôme
Jérôme le 18 Août 2022
You can also use fill.
In case you are using a legend on your plot, what is plotted with fill will be listed in the legend, whereas what is plotted with rectangle will not be listed in the legend. So, the best one to use depends on what we want to do.

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by