是否有一个python模块可以一次绘制多个一像素宽的点?

是否有一个python模块可以一次绘制多个一像素宽的点?,python,graphics,Python,Graphics,我正在制作一个程序,用graphics.py绘制Mandelbrot集。我遇到了几个问题。例如,每个点的宽度为2像素,总共为4像素。另外,我希望能够同时绘制所有点,我认为graphics.py不允许这样做。是否有一个模块允许这样做 用于打印点的代码: division = 100 imsize = 2 * division resize = 3 * division def spawnplane(): global plane plane = GraphWin("Man

我正在制作一个程序,用graphics.py绘制Mandelbrot集。我遇到了几个问题。例如,每个点的宽度为2像素,总共为4像素。另外,我希望能够同时绘制所有点,我认为graphics.py不允许这样做。是否有一个模块允许这样做

用于打印点的代码:

division = 100
imsize = 2 * division
resize = 3 * division
def spawnplane():
    global plane
    plane = GraphWin("Mandelbrot set", resize, imsize)
    plane.setBackground(color_rgb(0, 0, 0))
def spawnaxes():
    imaxis = Line(Point(2 * division, imsize), Point(2 * division, 0))
    reaxis = Line(Point(0, imsize / 2), Point(resize, imsize / 2))
    imaxis.setFill(color_rgb(255, 255, 255))
    reaxis.setFill(color_rgb(255, 255, 255))
    imaxis.draw(plane)
    reaxis.draw(plane)
    ticky = Line(Point(division, imsize / 2 - imsize / 20), Point(division, imsize / 2 + imsize / 20))
    ticky.setFill(color_rgb(255, 255, 255))
    ticky.draw(plane)
def plot(z, color):
    pt = Point((2 + z.real) * division, (1 - z.imag) * division)
    pt.setFill(color)
    pt.draw(plane)
我检查了一下,它似乎使用了
create_rectangle()
(在
Canvas
中的
tkinter
)这个边框增加了1个像素,它创建了点
2x2
。即使使用
pt.setWidth(0)

但是有一种
win.plotPixel(x,y,color)
使用
create_line()
并创建点
1x1


顺便说一句:我使用
win.autoflush=False
在绘制所有像素后重新绘制窗口。通常,它会在每个像素后重新绘制窗口。

可能使用
numpy.array
并转换为图像或使用
matplotlib
cv2
-但是
matplotlib
cv2
将不适用于
graphics.py
。顺便说一句:如果每个点都是2像素宽,那么可能使用了错误的宽度-也许你应该这样做使用
width-1
@furas如何更改宽度?如果您需要有关
graphics.py
的帮助,则应显示您的代码。我不知道你怎么画像素。据我所知,
graphics.py
是基于
tkinter
的,它使用
矩形
来绘制像素,它使用
(x,y,宽度,高度)
我不能运行你的代码,但是当我使用
pt.draw(plane)
plane.plotPixel(x,y,color)
时,我总是得到大小
1x1的像素。也许你的问题在不同的地方-创建只绘制单个像素的代码,看看它是否真的创建了大于
1x1
的像素。或者可能只是你的系统出了问题。我在LinuxMint上进行了测试。
from graphics import *

win = GraphWin()

win.autoflush = False

for x in range(10, 200, 10):
    for y in range(10, 200, 10):
        pt = Point(x, y)
        pt.draw(win)
        
win.autoflush = True
#win.update()

win.getMouse()
win.close()
from graphics import *

win = GraphWin()

win.autoflush = False

for x in range(10, 200, 10):
    for y in range(10, 200, 10):
        win.plotPixel(x, y) # plotPixel(x, y, color)
        
win.autoflush = True
#win.update()

win.getMouse()
win.close()