使用matplotlib进行亚像素精度散点图?

用户名

注意:我在编写此问题时想出了解决方案。我的答案如下。

有没有一种简单的方法可以使用matplotlib获得圆的亚像素抗锯齿放置?我能够创建以下.gif文件,但是圆圈的运动步长为整数像素的事实确实困扰着我。

在此处输入图片说明

我当然可以渲染大图像(plt.savefig("image.png",dpi=1000))并缩小比例,但是增加的复杂性是一个痛苦(这是学生的一个例子,因此导入额外的工具会使学生烦恼,而安装额外的工具会使校园IT烦恼!)

import matplotlib.pyplot as plt
from math import sin,cos
x=[]
y=[]
#Create 41**2 particles in the unit square
for i in range(41):
    for j in range(41):
        x.append(i*0.05-1.0)
        y.append(j*0.05-1.0)
#5 second video at 30 fps = 150 frames
for n in range(150):
    plt.close('all')
    fig, axes = plt.subplots(figsize=(5,5))
    #some cool motion
    for i in range(len(x)):
        x[i]+=0.001*cos(x[i]+3*y[i])
        y[i]+=0.001*sin(6*x[i]-4*y[i])
    #create the scatter plot
    axes.scatter(x,y,s=3,antialiased=True)
    axes.set_xlim(-1.4,1.4)
    axes.set_ylim(-1.4,1.4)
    axes.set_aspect('equal')
    plt.savefig("out/fig%03d.png"%n,dpi=80)
安东尼

您可能对https://github.com/anntzer/mplcairo感兴趣,这是Matplotlib的一个新的基于开罗的后端,我最初写它的确切原因是我对此问题不满意。在保持合理性能的同时,它不会显示上述问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章