matplotlib 设置图形大小 figsize 分辨率 dpi
figure语法说明
- figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
- num: 图像编号或名称,数字为编号 ,字符串为名称
- figsize: 指定figure的宽和高,单位为英寸
- dpi: 指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80, 1英寸等于2.5cm, A4 纸是 21*30cm的纸张
- facecolor: 背景颜色
- edgecolor: 边框颜色
- frameon: 是否显示边框
import matplotlib.pyplot as plt def plot(fs, dpi_set): plt.figure(figsize=fs, dpi=dpi_set) plt.title("size:{}, dpi:{}".format(fs, dpi_set)) plt.plot([0, 1, 2, 3], [3, 4, 2, 5]) plt.savefig(str(fs) + "-" + str(dpi_set) + ".png") if __name__ == "__main__": figsize = (2, 2) for i in range(1, 4): plot(figsize, i*72) for i in [2, 4, 6]: plot((i, i), 72)
Jupyter
方法二:
plt.rcParams['figure.figsize'] = (8.0, 4.0)
# 设置figure_size尺寸
REF
https://www.cnblogs.com/lijunjie9502/p/10327151.html
问题:
1、生成的柱状图中,横轴标签相互遮盖。
2、保存的图片太小,边缘几乎被裁切掉了。
方案:
问题1:
第1种方法:旋转X轴标签, 旋转-15度
plt.xticks(rotation=-15)
第2种方法:缩小X轴字体,字体缩小为5
plt.xticks(fontsize=5)
第3种方法:长标签换行,需换行标签前加’\n’换行
x = ['American Indian/Eskimo/Aleut', '\n'+'Asian or Pacific Islander', 'Black', 'White', 'Other']
第4种方法:横纵轴颠倒。
plt.barh(df['sport_type'], df['score']) # 绘制横向柱状图
第5种方法:拉长画布。第一个是长,第二个是宽,记得要把它放在最前面来自定义画布。
plt.figure(figsize=(25,10))
问题2:
保存图片(plt.savefig()前加入一行代码就好,让Matplotlib自行调整。
plt.tight_layout()
注意:必须是plt.savefig 前加入。
REF
https://blog.csdn.net/qq_36017609/article/details/108657017
https://www.jianshu.com/p/01ed72b2aeee