No BSD License  

Highlights from

3.9 | 9 ratings Rate this file 85 Downloads (last 30 days) File Size: 8.01 KB File ID: #2075 Version: 1.0
image thumbnail



Iram Weinstein (view profile)


07 Aug 2002 (Updated )

Create cross-hatched filled regions.

| Watch this File

File Information

This is an old file by Kirill K. Pankratov thaat used to be on the file exchange. I've updated it to run on Matlab 5+.


This file inspired Hatchfill.

MATLAB release MATLAB 5.3.1 (R11.1)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (12)
26 Sep 2015 xianlong liu

good job, could be a good idea

Comment only
01 Mar 2015 Matteo

Matteo (view profile)

The code works pretty well. I cannot get it to work with the legend, though.
Here what I am trying:

hp = findobj(h,'type','patch');


Any suggestion?

Comment only
30 Oct 2014 Yu-Heng

This is to my knowledge the best function to use if you hatch patches need to have 'holes' in them (e.g. a torus-shaped hatch patch). Works on R2014a.

When I plotted complex hatch plots, there would be dotted lines running across different hatch patches. This is fixed by inserting the following code immediately after the "Organize to pairs and separate by NaN's" block:

% Remove point line segments (i.e. segment of the form (a,b) to (a,b)
i_same = find(diff(xi)<eps('single')); % find the first index of each point
i_remove = repmat(i_same,[3 1]) + repmat((0:2)',[1 length(i_same)]);
xi(i_remove) = [];
yi(i_remove) = [];

This amendment removes hatch lines shorter than 1E-7 unit long (essentially what those dotted lines are).

04 May 2011 Neil Dalchau

Generally works, but could not get the angle to work. I'm using Matlab on Windows 7, 32-bit.

23 Jun 2009 Scott Beaver

This didn't work for me-- the hatch lines would not rotate in my figures, and no hatch lines were drawn using "hatch demo." Perhaps an issue with my Linux_64 machine?

Comment only
30 Sep 2008 Martin Mul

Nice program, but i have one question:
If I hatch it hatches to one side of my graph. How do i manage to hatch also the other side of this graph?

17 Apr 2006 Bob Farrell

Now need to include 'v6' as first arg to bar function in order for demo to work. Even though this was exactly what I was looking for (and amazed that this isn't built in), I ended up not using it partly because I didn't understand why exactly horizontal or exactly vertical lines jump one pixel -- wasn't asthetic to my eye for manuscript quality.

06 Jul 2005 Joel Lindop

Very useful, thanks a lot!
One tiny change worth making: the function definition on the first line is missing its output variables. Change to:
function lh = hatch(obj,angle,color,style,step,width)
if you want access to the handle (lh).

10 Feb 2005 Dimitri Pavlidis  
09 Feb 2005 Gene Smith

I have used this to create complex bar graphs. It took a while to figure out how to use it. My usage was

hdl = patch(x,y,'w','EdgeColor'.'k'); % using MATLAB "patch" to establish the border


I did notice at cetain angles some of my small bars had the hash lines at strange angles.

16 Oct 2003 Troy Goodson

I've done some limited testing of this
m-file with Matlab (R13.0.1)
and it's been working very well!
Thanks so much Iram!

29 Aug 2002 Steve Chiswell

Usefull m file. I often need hatched shading for b&w figures in journals. Hopefull this will do the job.
Took me a while to figure out how to run it

Contact us