gpt4 book ai didi

python - 动画中的抗锯齿字体

转载 作者:行者123 更新时间:2023-12-04 18:02:28 25 4
gpt4 key购买 nike

我正在尝试创建一个包含两个子图的动画——一个是 3D 的,另一个是 2D 的。但是,我似乎无法弄清楚是否有办法从 2D 轴获得更好的字体渲染。我尝试使用 font_manager 进行各种设置,甚至改变 frame_format生的,但我没有成功。有谁知道如何解决这个问题?我用 mpeg4 得到了相同的结果。

奇怪的是,3D 图形似乎正确地呈现了字体。

import numpy as np

import matplotlib
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from mpl_toolkits.mplot3d import Axes3D

w, h = matplotlib.figure.figaspect(.5)
fig = plt.figure(figsize=(w,h))

ax3d = fig.add_subplot(121, projection='3d')
ax2d = fig.add_subplot(122)

ax3d.set_xlim(-3, 3)
ax3d.set_ylim(-3, 3)
ax3d.azim = -90
ax3d.elev = 0
ax3d.set_title('Car on Parking Ramp')

ax2d.set_xlim(-20,20)
ax2d.set_ylim(-20,20)
ax2d.set_ylabel('y')
ax2d.set_xlabel('x')
ax2d.set_title('Intersection with z=0')

''' Helix '''
K = 3 ## Angular velocity
H = 2*np.pi ## Height

t = np.linspace(0, H, 100, endpoint=True)

x = np.cos(K*t)
y = np.sin(K*t)
z = H - t

ax3d.plot(x, y, z, color='k')

''' z = 0 Plane '''
xx, yy = np.meshgrid([-20,20], [-20,20])
ax3d.plot_surface(xx, yy, 0, alpha=0.3, facecolor='b', rstride=1, cstride=1, shade=True)
ax3d.set_axis_off()

''' Tangent Line Data '''
xdata = np.array([ np.cos(K*t), np.cos(K*t) - K*(H - t)*np.sin(K*t) ])
ydata = np.array([ np.sin(K*t), np.sin(K*t) + K*(H - t)*np.cos(K*t) ])

''' Graph Lines '''
proj, = ax2d.plot([],[])
tangent, = ax3d.plot([], [], [], color='b')


def update_graph(n, tangent, proj, xdata, ydata):
tangent.set_data(xdata[:,n],
ydata[:,n])

tangent.set_3d_properties([H - t[n], 0])

proj.set_xdata(xdata[1,:n])
proj.set_ydata(ydata[1,:n])


ani = animation.FuncAnimation(fig, update_graph, len(t),
fargs=(tangent, proj, xdata, ydata), interval=75, blit=True)

ani.save('im.gif', writer='imagemagick', fps=10)
#ani.save('im.mp4', extra_args=['-vcodec', 'libx264'])

Results

最佳答案

对于遇到同样问题的人来说,这确实与 matplotlib 后端有关。

使用不同的后端可能会有帮助。就我而言,

%matplotlib nbagg

解决了(感谢链接问题:Pixelated fonts when plot is saved as jpeg)。

关于python - 动画中的抗锯齿字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32804900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com