Is there a way to get a line/ patch object from a bar plot, if there even is such object in a bar plot?
I'm trying to implement "hatch" (https://se.mathworks.com/matlabcentral/fileexchange/2075-hatch-m) together with "bar" but can't extract the expected object, not even:
findobj(b(1), 'Type', 'patch')
works...
Is it simply so that bar does not contain what I search for and I have to forfit my attempts at "hatching" the bars?

 채택된 답변

Mario Malic
Mario Malic 2020년 11월 5일

0 개 추천

It looks like such object does not exist on bar anymore.

댓글 수: 5

Of course it doesn't exist anymore, excellent... So hatch won't work on bar then.
I've tried "applyhatch_pluscolor" as well, but with disappointing result. Anyone that happens to have a suggestion on how to plot hatch/ patterns on barplots without spending days on new code? I've red the blog post by Jiro and searched but no luck so far.
Mario Malic
Mario Malic 2020년 11월 5일
편집: Mario Malic 2020년 11월 5일
You can actually use patch function.
x = 1900:10:2000;
y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
Bar_Obj = bar(x,y);
% Get data about bars
x_points = Bar_Obj.XEndPoints;
y_points = Bar_Obj.YEndPoints;
width = abs(x(1)-x(2))*Bar_Obj.BarWidth/2; % BarWidth is relative measure
From this, you can construct each polygon,
Poly_X = [x_points-width; x_points+width; x_points+width; x_points-width]; % x coords counter clockwise, 1st point is down-left
Poly_Y = [zeros(size(x_points)); zeros(size(x_points)); y_points; y_points]; % y coords ccw
c = repmat([0 6 4 2]', [1,length(y_points)]); % color, find example in patch
And finally,
patch (Poly_X, Poly_Y, c);
Probably, you can reuse the same idea with function imagesc if you'd provide hatch images.
Aaaand it seems I don't have EndPoints in my release either, but perhaps it works with YData/XData instead.
I also realize a problem in that I have errorbars as well so I assume I have to chop up the errorbarbar function and plot the errorbars after patching/ hatching to not cover them.
Thanks Mario
Mario Malic
Mario Malic 2020년 11월 6일
It should properly work with mentioned properties and yes, errorbar comes after patching.
You're welcome.
Kristoffer Clasén
Kristoffer Clasén 2020년 11월 6일
편집: Kristoffer Clasén 2020년 11월 6일
I just found hatchfill2 which appears to accept bar as object input, and I also found a thread with an example of how to "hatch" the legend which also was a concern:
So I'll most likely continue with this option

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Graphics Object Properties에 대해 자세히 알아보기

제품

릴리스

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by