I am trying to use a work-around in order to make a transparent line. It works, however, I keep getting a line through the middle of my graphic. Can somebody please tell me why?
x = linspace(0,10);
y1 = 4 + sin(x).*exp(0.1*x);
y2 = 4 + cos(x).*exp(0.1*x);
patch(x, y2, 'w', 'EdgeColor', 'r', 'EdgeAlpha', 1, 'FaceColor', 'r', 'FaceAlpha', 1)
hold on
patch(x, y1, 'w', 'Edgecolor', 'b', 'EdgeAlpha', 0.3, 'FaceColor', 'w', 'FaceAlpha', 0)
hold off

2 件のコメント

Star Strider
Star Strider 2016 年 2 月 22 日
Please go into a bit of detail about what you want to do, and what line you want to eliminate.
ashley Raby
ashley Raby 2016 年 2 月 24 日
In the long term I want to create a transparent line. One of the first steps toward accomplishing this is to use the patch function to create filled polygons.
I want to re-create the picture below with the pink and the blue polygons. This image is included in Mathworks documentation. However it gives conflicting information so I can't re-create it the way they suggest. You can find it here http://www.mathworks.com/help/matlab/visualize/add-transparency-to-graphics-objects.html?searchHighlight=transparency. When I try to make it using "area", it tells me that "FaceAlpha" is not a property of "area". Therefore this is my attempt at creating this image using "patch" instead of "area" because I can use "FaceAlpha" when I use "patch".
The two lines that I want to get rid of I have highlighted yellow in the picture below.

サインインしてコメントする。

 採用された回答

Mike Garrity
Mike Garrity 2016 年 2 月 22 日

1 投票

Patch wants to draw closed polygons. If you don't want the line from the end of the second patch back to the beginning, then the easiest way is to add a nan like this:
x = linspace(0,10);
y1 = 4 + sin(x).*exp(0.1*x);
y2 = 4 + cos(x).*exp(0.1*x);
patch(x, y2, 'w', 'EdgeColor', 'r', 'EdgeAlpha', 1, 'FaceColor', 'r', 'FaceAlpha', 1)
hold on
patch([x nan], [y1 nan], 'w', 'Edgecolor', 'b', 'EdgeAlpha', 0.3, 'FaceColor', 'w', 'FaceAlpha', 0)
hold off

2 件のコメント

ashley Raby
ashley Raby 2016 年 2 月 24 日
THANK YOU! :)
Angelica Laurita
Angelica Laurita 2021 年 6 月 11 日
Hello! I'm having the same problem, but I cannot solve it using nan since I obtain the error "Error using horzcat. Dimensions of arrays being concatenated are not consistent."
Any ideas on how I could do?
Than you!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by