Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Single pixel marks in a scatter_plot

I'd like to create a scatter plot of some data and ensure that every data point colors exactly one pixel of the result, its position simply rounded to nearest neighbor without any antialiasing. However, the marker="," setting in the scatter_plot invocation doesn't have the effect the manual description “(pixel)” suggests. Is there some additional setting required to achieve this, or perhaps some other approach altogether?

Example (related to this post about how to recreate this image):

import itertools
def genpos(limit = 100):
    r = range(limit)
    for m in r:
        dm = m*m
        if dm > limit: break
        for n in r:
            dn = dm + n*n
            if dn > limit: break
            for p in r:
                dp = dn + p*p
                if dp > limit: break
                for q in r:
                    d = dp + q*q
                    if d > limit: break
                    if d == 0: continue
                    abc = [m*m + n*n - p*p - q*q, 2*(m*q + n*p), 2*(n*q - m*p)]
                    abc = map(abs, abc)
                    for i in itertools.permutations(abc, 2):
                        yield (i[0]/d, i[1]/d)
scatter_plot(list(genpos(100)), markersize=1, marker=",", aspect_ratio=1)