define different color for area

46 ビュー (過去 30 日間)
Gianluca De Monaco
Gianluca De Monaco 2021 年 11 月 17 日
回答済み: Kelly Kearney 2021 年 11 月 17 日
Having diagramed the T function, I would like to color the upper triangle red and the lower one blue, without necessarily having to create two distinct areas. It's possible?
n = 10;
Le = 10000;
xn = linspace(0,Le,n+1);
T = 89250-357*xn/20;
taglio = area(xn,T);

採用された回答

Kelly Kearney
Kelly Kearney 2021 年 11 月 17 日
I don't think an area plot allows for multiple colors within a single area object. You could accomplish the color change using a patch object instead, but then you need to manually add the appropriate baseline:
n = 10;
Le = 10000;
xn = linspace(0,Le,n+1);
T = 89250-357*xn/20;
xp = [xn xn(end) xn(1) xn(1)];
yp = [T 0 0 T(1)];
cp = sign(yp);
hp = patch(xp, yp, cp);
set(gca, 'clim', [-1 1], 'colormap', [1 0 0; 0 0 1]);
I think it would be more straightforward to just use two area objects instead:
T1 = max(T, 0);
T2 = min(T, 0);
taglio1 = area(xn, T1, 'facecolor', 'b');
hold on;
taglio2 = area(xn, T2, 'facecolor', 'r');

その他の回答 (2 件)

Image Analyst
Image Analyst 2021 年 11 月 17 日
You can use the FaceColor optio:
n = 10;
Le = 10000;
xn = linspace(0,Le,n+1);
T = 89250-357*xn/20;
taglio = area(xn,T, 'FaceColor', 'r');
You can use a 3 element RGB value instead of a letter if you want a custom color, like
myColor = [.5, .3, .2];
taglio = area(xn,T, 'FaceColor', myColor);

Gianluca De Monaco
Gianluca De Monaco 2021 年 11 月 17 日
I know the FaceColor property! but I get this result:
I want something like that:
Is there an option that allows you to give a different color as long as the T function is greater than a fixed value? Let me explain ... As long as the T> 0, it is colored blue, while if the T <0, it is colored red.

カテゴリ

Help Center および File ExchangeBlue についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by