Here is the exact reproduction of the picture using tkz-euclide
.
\documentclass[border=3]{standalone}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}
\tkzInit[xmin=-6,ymin=-6,xmax=6,ymax=6]
\tkzAxeXY
\tkzGrid
\tkzDefPoints{0/3/A,
2/3/B,
2/0/C}
\tkzDrawSegments[color=blue, ultra thick, densely dashed](A,B B,C)
\tkzDrawPoints[size=10,color=red](A,B,C)
\tkzLabelPoint[above right,color=blue](A){$(0,3)$}
\tkzLabelPoint[above right,color=blue](B){$(2,3)$}
\tkzLabelPoint[above right,color=blue](C){$(2,0)$}
\tkzDefPoints{0/1/D,
-3/1/E,
-3/0/F}
\tkzDrawSegments[color=red, ultra thick, densely dashed](D,E E,F)
\tkzDrawPoints[size=10,color=red](D,E,F)
\tkzLabelPoint[above left,color=blue](D){$(0,1)$}
\tkzLabelPoint[above left,color=blue](E){$(-3,1)$}
\tkzLabelPoint[above left,color=blue](F){$(-3,0)$}
\tkzDefPoints{0/-2.5/G,
-1.5/-2.5/H,
-1.5/0/I}
\tkzDrawSegments[color=red, ultra thick, densely dashed](G,H H,I)
\tkzDrawPoints[size=10,color=red](G,H,I)
\tkzLabelPoint[right,color=blue](G){$(0,-2.5)$}
\tkzLabelPoint[below,color=blue](H){$(-1.5,-2.5)$}
\tkzLabelPoint[above,color=blue](I){$(-1.5,0)$}
\tkzLabelPoint[above right,color=blue]({0,0}){$(0,0)$}
\end{tikzpicture}
\end{document}

Since this is repetitive code, the number of lines can be reduced by two third. But I left it more verbose so that it is easy to follow.
2
you also want to have a label(x,0)
? (Or did you really mean(0,x)
? I was assuming a typo.) Won't that be rather confusing?