Вы создаете овал шириной в один пиксель и высотой в один пиксель. То, что вы видите, это цвет овального контура. С одним пикселем недостаточно места, чтобы нарисовать контур и интерьер.
Вы можете установить для атрибута outline
тот же цвет, что и для цвета заливки, либо установить нулевую ширину контура (атрибут width
).
Вот пример, который показывает два разных блока овалов по 1 пикселю. Один из них имеет ширину контура по умолчанию, а другой явно устанавливает ширину контура на ноль. Обратите внимание, что в первом вы видите цвет контура, а во втором вы видите цвет заливки.
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=200, height=200, background="black")
canvas.pack(fill="both", expand=True)
for x in range(100):
for y in range(100):
canvas.create_oval(x, y, x, y, outline="red", fill="green")
for x in range(100, 200):
for y in range(100, 200):
canvas.create_oval(x, y, x, y, outline="red", fill="green", width=0)
root.mainloop()