No License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from

4.2 | 17 ratings Rate this file 73 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 (21)
17 Feb 2017 Bernhard

28 Aug 2016 JanianC


12 Jun 2016 chen rui

18 May 2016 Lao Li

Lao Li (view profile)

08 May 2016 yipeng Wang

26 Apr 2016 yang_jun1219

good job

25 Mar 2016 Qingli Dong

good job

Comment only
19 Nov 2015 Bruce Wang

good job

23 Oct 2015 rong zhang

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