Get boundary object from a bar plot

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
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.
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
It should properly work with mentioned properties and yes, errorbar comes after patching.
You're welcome.
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