记录把python图片高清保存的参数

 实际上,最主要就是调整了dpi的参数

plt.savefig('BFGS_步长对比.png', dpi=700, bbox_inches='tight', pad_inches=0.1)

 我把dpi设置成700,出来的图片放大之后还是很清晰,文件就400k左右。很满意,记录一下。

import pandas as pd
import matplotlib.pyplot as plt
from io import StringIO
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['STZhongsong']  # 解决中文显示问题
mpl.rcParams['axes.unicode_minus'] = False

# 原始数据
data_armijo = """
1 1 6 33
1 2 3 38
1 3 5 29
1 4 5 28
2 1 5 34
2 2 1 1
2 3 5 34
2 4 5 35
3 1 5 29
3 2 3 38
3 3 6 33
3 4 3 40
4 1 5 35
4 2 3 38
4 3 7 161
4 4 6 36
"""

data_wolfe = """
1 1 6 59
1 2 3 58
1 3 5 55
1 4 5 55
2 1 5 57
2 2 1 1
2 3 5 57
2 4 5 60
3 1 5 55
3 2 3 58
3 3 6 59
3 4 3 62
4 1 5 60
4 2 3 61
4 3 3 3
4 4 6 62
"""


# 读取数据
df_armijo = pd.read_csv(StringIO(data_armijo), sep='\s+', header=None, names=['x', 'y', 'series1', 'series2'])
df_wolfe = pd.read_csv(StringIO(data_wolfe), sep='\s+', header=None, names=['x', 'y', 'series1', 'series2'])

# 添加坐标标签
df_armijo['xy'] = df_armijo.apply(lambda row: f"({row['x']},{row['y']})", axis=1)
df_wolfe['xy'] = df_wolfe.apply(lambda row: f"({row['x']},{row['y']})", axis=1)

# 提取横轴和BFGS算法下的迭代次数
x = df_armijo['xy']  # 两个 DataFrame 的 xy 是一样的顺序
y_armijo = df_armijo['series1']  # BFGS对应的列
y_wolfe = df_wolfe['series1']    # BFGS对应的列

# 绘图
plt.figure()
plt.plot(x, y_armijo, marker='o', label='Armijo 步长')
plt.plot(x, y_wolfe, marker='s', label='Wolfe 步长')
plt.xlabel('初始点(x,y)')
plt.ylabel('BFGS迭代次数')
plt.title('BFGS算法下不同步长策略的迭代次数对比')
plt.xticks(rotation=45)
plt.legend()
plt.tight_layout()
plt.savefig('BFGS_步长对比.png', dpi=700, bbox_inches='tight', pad_inches=0.1)
plt.show()

你可能感兴趣的:(工作辅助记录,python,开发语言)