Вот способ "грубой силы" сделать это.Вы можете обобщить это, чтобы лучше обрабатывать различные диапазоны х / у.Может быть, вы могли бы использовать matplotlib и потенциально выключить этот пример
from PIL import Image, ImageDraw
im = Image.new('RGBA', (250, 250), "white")
draw = ImageDraw.Draw(im)
draw.rectangle([(0, 0), (249, 249)], outline='black') # just here to create a visible box
draw.rectangle([(10, 40), (100, 200)], fill='red', outline='red')
# Draw x ticks
[draw.line(((x,250),(x,245)),fill='black') for x in range(0,249,5)]
# Draw x labels
[draw.text((x,235),str(x),fill='black')for x in range(0,249,25)]
# Can do same for y...
im
![Very basic example](https://i.stack.imgur.com/qGvH1.png)