% defining the new dimensions and parameters \newlength{\hatchspread} \newlength{\hatchthickness} \newlength{\hatchshift} \newcommand{\hatchcolor}{} % declaring the keys in tikz \tikzset{hatchspread/.code={\setlength{\hatchspread}{#1}}, hatchthickness/.code={\setlength{\hatchthickness}{#1}}, hatchshift/.code={\setlength{\hatchshift}{#1}},% must be >= 0 hatchcolor/.code={\renewcommand{\hatchcolor}{#1}}} % setting the default values \tikzset{hatchspread=6pt, hatchthickness=0.4pt, hatchshift=0pt,% must be >= 0 hatchcolor=black} % declaring the pattern \pgfdeclarepatternformonly[\hatchspread,\hatchthickness,\hatchshift,\hatchcolor]% variables {custom north west lines}% name {\pgfqpoint{\dimexpr-2\hatchthickness}{\dimexpr-2\hatchthickness}}% lower left corner {\pgfqpoint{\dimexpr\hatchspread+2\hatchthickness}{\dimexpr\hatchspread+2\hatchthickness}}% upper right corner {\pgfqpoint{\dimexpr\hatchspread}{\dimexpr\hatchspread}}% tile size {% shape description \pgfsetlinewidth{\hatchthickness} \pgfpathmoveto{\pgfqpoint{0pt}{\dimexpr\hatchspread+\hatchshift}} \pgfpathlineto{\pgfqpoint{\dimexpr\hatchspread+0.15pt+\hatchshift}{-0.15pt}} \ifdim \hatchshift > 0pt \pgfpathmoveto{\pgfqpoint{0pt}{\hatchshift}} \pgfpathlineto{\pgfqpoint{\dimexpr0.15pt+\hatchshift}{-0.15pt}} \fi \pgfsetstrokecolor{\hatchcolor} % \pgfsetdash{{1pt}{1pt}}{0pt}% dashing cannot work correctly in all situation this way \pgfusepath{stroke} } \begin{tikzpicture} \begin{axis}[ legend pos=south west, axis x line=middle, axis y line=middle, %grid = major, %width=9cm, %height=4.5cm, grid style={dashed, gray!30}, xmin=-1, % start the diagram at this x-coordinate xmax= 6, % end the diagram at this x-coordinate ymin=-0.25, % start the diagram at this y-coordinate ymax= 5, % end the diagram at this y-coordinate axis background/.style={fill=white}, xlabel=$X_1$, ylabel=$X_2$, %xticklabels={,,}, %yticklabels={,,}, %xtick={-1,0,1,2,3,4,5}, %ytick={-1,0,1,2,3,4,5}, ticks=none, %tick align=outside, enlargelimits=true, tension=0.08] \addplot[hatchcolor=red,mark=none, pattern=custom north west lines, draw=none] coordinates {(0.5, 0) (0.5,5) (1.5,5) (1.5,0) }; \addplot[red,mark=none, thick] coordinates {(0.5, 0) (0.5,5)}; \addplot[red,mark=none, thick] coordinates {(1.5, 0) (1.5,5)}; \addplot[hatchcolor=red,mark=none, pattern=custom north west lines, draw=none] coordinates {(4.5, 0) (4.5,5) (5.5,5) (5.5,0) }; \addplot[red,mark=none, thick] coordinates {(4.5, 0) (4.5,5)}; \addplot[red,mark=none, thick] coordinates {(5.5, 0) (5.5,5)}; \addplot[mark=none, dashed] coordinates {(1, 0) (1,3)}; \addplot[mark=none, dashed] coordinates {(5, 0) (5,3)}; \addplot[mark=x] coordinates {(1, 3)}; \addplot[mark=x] coordinates {(5, 3)}; \node at (axis cs:1,3) [anchor=north west] {$(x_1, y_1)$}; \node at (axis cs:5,3) [anchor=north west] {$(x_2, y_2)$}; \node at (axis cs:1,0) [anchor=north] {$x_1$}; \node at (axis cs:5,0) [anchor=north] {$x_2$}; \node[red] at (axis cs:1,-0.3) [anchor=north] {$U_1 \times X_2$}; \node[red] at (axis cs:5,-0.3) [anchor=north] {$U_2 \times X_2$}; \end{axis} \end{tikzpicture}