当绘制具有非常接近的值的点时,有时具有不同值的点似乎具有相同的值.在下面的图片中,所有六个点有不同的坐标值,但它好像点2,3和点4,5,6具有相同的值.
我知道,这是解决问题(我不能在这里的原因就不一一阐述增加).还有,是否有可能告诉matplotlib更精确地绘制这些点?
MWE:
import matplotlib
from matplotlib import pyplot as plt
coor = [[0.5,0.525,0.55,0.575,0.6,0.625],[0.5,0.501,0.502,0.503,0.504,0.505]]
fig = plt.figure(figsize=(3.5,3.5))
plts=fig.add_subplot(1,1,1)
fig.subplots_adjust(left=0.01, right=0.99, bottom=0.01, top=0.99, hspace=0, wspace=0)
plts.set_xlim([0,1])
plts.set_ylim([0,1])
plts.get_xaxis().set_visible(False)
plts.get_yaxis().set_visible(False)
grph = plts.scatter(coor[0],coor[1],facecolor='k',marker='o',lw=0,s=25)
fig.savefig('test.png', bbox_inches='tight', dpi=100)
解决方法:
问题来自分辨率为100 dpi.由于点的位置需要为1像素的倍数,因此它们的位置看起来是离散的.
保存图片时,您当然可以提高dpi.以下是原始图片,以100 dpi保存,显示了不希望的行为.
以下是以300 dpi保存的图片,然后降采样为与原始图片相同的尺寸.
如果您选择图形尺寸
figsize * saved_dpi / desired_dpi ==整数结果会更好;但是您需要避免使用bbox_inches =’tight’.
标签:matplotlib,python