Line through polygon using patch
5 views (last 30 days)
Show older comments
ashley Raby
on 22 Feb 2016
Commented: Angelica Laurita
on 11 Jun 2021
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)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/155613/image.jpeg)
hold off
2 Comments
Star Strider
on 22 Feb 2016
Please go into a bit of detail about what you want to do, and what line you want to eliminate.
Accepted Answer
Mike Garrity
on 22 Feb 2016
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/172984/image.png)
2 Comments
Angelica Laurita
on 11 Jun 2021
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!
More Answers (0)
See Also
Categories
Find more on Lighting, Transparency, and Shading in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!