注意:我在编写此问题时想出了解决方案。我的答案如下。
有没有一种简单的方法可以使用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] 删除。
我来说两句