问题

有时我们在使用matplotlib作图时,图片不清晰或者图片大小不是我们想要的,例如下图

上图的相关代码如下:

import matplotlib.pyplot as plt

x = [10,20,30,40,50,60,70,80,90,1000]
y1 = [7,17,27,37,43,49,57,65,71,77]
y2 = [7,17,27,37,45,54,59,67,75,83]
y3 = [8,18,28,38,47,56,64,73,80,89]
y4 = [10,20,30,40,50,60,70,80,90,100]
plt.plot(x,y1,color='grey',linewidth=2.0,linestyle='-')
plt.plot(x,y2,color='orange',linewidth=2.0,linestyle='-')
plt.plot(x,y3,color='blue',linewidth=2.0,linestyle='-')
plt.plot(x,y4,color='red',linewidth=2.0,linestyle='-')
plt.xlabel('横坐标')
plt.ylabel('纵坐标')

# 设置小图标
plt.legend(['A','B','C','D'],loc='upper left',fontsize = 10)
plt.show()

我们发现:横坐标和纵坐标的字不清晰,而且横坐标左边的数据太紧密了,几条线都已经重叠。

我们可以通过调整图像清晰度和大小的方式来解决上述问题。


解决方案

matplotlib调节图像大小/清晰度

其实也就是一行代码,就可以完成图像大小和清晰度的调节

matplotlib默认的清晰度dpi=80

import matplotlib.pyplot as plt

x = [10,20,30,40,50,60,70,80,90,1000]
y1 = [7,17,27,37,43,49,57,65,71,77]
y2 = [7,17,27,37,45,54,59,67,75,83]
y3 = [8,18,28,38,47,56,64,73,80,89]
y4 = [10,20,30,40,50,60,70,80,90,100]

# 调节图像大小,清晰度
plt.figure(figsize=(10,8),dpi=150)

plt.plot(x,y1,color='grey',linewidth=2.0,linestyle='-')
plt.plot(x,y2,color='orange',linewidth=2.0,linestyle='-')
plt.plot(x,y3,color='blue',linewidth=2.0,linestyle='-')
plt.plot(x,y4,color='red',linewidth=2.0,linestyle='-')
plt.xlabel('横坐标')
plt.ylabel('纵坐标')

# 设置小图标
plt.legend(['A','B','C','D'],loc='upper left',fontsize = 10)
plt.show()

调整后的图像为:

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐