至少在 Spyder 中,PyPlot 绘图可以是低分辨率的,例如来自:
import numpy as np
import matplotlib.pyplot as plt
# import seaborn as sns
rng = np.random.default_rng(1)
scat = plt.scatter( *rng.integers( 10, size=(2,10) ) )
我的网上冲浪给我带来了一个建议的解决方案:增加每英寸点数。
plt.rcParams['figure.dpi']=300
冲浪表示默认100。
经过多次实验,有没有办法从绘制的对象中“获取”DPI,例如上面的
scat
? 好像没有scat.dpi
、scat.getdpi
、scat.get_dpi
。
强烈建议您使用面向对象的接口:
import numpy as np
import matplotlib.pyplot as plt
rng = np.random.default_rng(1)
fig, ax = plt.subplots()
ax.scatter(*rng.integers(10, size=(2,10)))
print(fig.dpi) # returns 100
按照您当前的方法:
plt.gcf().get_dpi()
或
plt.gcf().dpi