本文目录导读:

在Python中保存统计图表主要依靠Matplotlib、Seaborn等库中的savefig()方法,以下是一些最常用的案例和保存技巧:
基础保存方法(Matplotlib)
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 创建图表
plt.plot(x, y)"基础折线图")
plt.xlabel("X轴")
plt.ylabel("Y轴")
# 保存图表(必须在 show() 之前调用)
plt.savefig('my_plot.png') # 保存为PNG格式
plt.show()
常用的保存格式
# PNG格式(默认)
plt.savefig('plot.png')
# JPEG格式
plt.savefig('plot.jpg', quality=95) # quality参数控制压缩质量
# PDF格式(矢量图)
plt.savefig('plot.pdf')
# SVG格式(矢量图,适合网页使用)
plt.savefig('plot.svg')
# EPS格式(学术论文常用)
plt.savefig('plot.eps')
调整图片质量和尺寸
# 设置图片分辨率(dpi)
plt.savefig('high_res_plot.png', dpi=300) # 高分辨率印刷质量
# 设置图片大小(英寸)
plt.figure(figsize=(8, 6)) # 8英寸宽,6英寸高
plt.plot(x, y)
plt.savefig('custom_size_plot.png', dpi=100)
# 自动调整图片边距
plt.savefig('tight_plot.png', bbox_inches='tight') # 自动裁剪空白边距
透明背景和颜色设置
# 透明背景(适合网页或PPT嵌入)
plt.savefig('transparent_plot.png', transparent=True)
# 设置背景颜色
plt.savefig('white_bg_plot.png', facecolor='white') # 白色背景
plt.savefig('custom_bg.png', facecolor='lightyellow') # 自定义背景色
完整的Seaborn保存示例
import seaborn as sns
import matplotlib.pyplot as plt
# 加载数据
tips = sns.load_dataset("tips")
# 创建统计图表
plt.figure(figsize=(10, 6))
sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("小费金额按天分布", fontsize=14)
# 保存图表
plt.savefig('tips_boxplot.png',
dpi=200,
bbox_inches='tight',
facecolor='white',
edgecolor='none')
plt.show()
批量保存图表
import os
# 创建保存目录
save_dir = "charts"
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 批量保存
for i in range(5):
plt.figure()
plt.plot([1, 2, 3], [i, i+1, i+2])
plt.title(f"图表 {i+1}")
# 保存到指定目录
plt.savefig(f"{save_dir}/chart_{i+1}.png", dpi=150)
plt.close() # 关闭当前图表,避免内存累积
Pandas直接保存图表
import pandas as pd
import matplotlib.pyplot as plt
# 创建DataFrame
df = pd.DataFrame({
'A': [1, 3, 5],
'B': [2, 4, 6]
})
# 直接使用Pandas绘图并保存
ax = df.plot(kind='bar', title="Pandas柱状图")
fig = ax.get_figure()
fig.savefig('pandas_plot.png', dpi=100)
重要注意事项
import matplotlib.pyplot as plt
# ❌ 错误做法
plt.plot([1, 2, 3], [1, 2, 3])
plt.show() # 先显示
plt.savefig('wrong.png') # 再保存 - 这会保存空白图
# ✅ 正确做法
plt.plot([1, 2, 3], [1, 2, 3])
plt.savefig('correct.png') # 在 show() 之前保存
plt.show()
# ✅ 或者使用 close() 后再保存
plt.plot([1, 2, 3], [1, 2, 3])
plt.show()
plt.savefig('alternative.png') # 不推荐,可能保存空白
中文字体支持(防止乱码)
import matplotlib.pyplot as plt
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置黑体
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
plt.plot([1, 2, 3], [1, 2, 3])"中文字体测试")
plt.savefig('chinese_plot.png', dpi=100)
总结最佳实践
import matplotlib.pyplot as plt
# 推荐的标准保存方式
def save_chart(filename, fig=None, dpi=200):
"""统一保存图表"""
if fig is None:
fig = plt.gcf() # 获取当前图表
fig.savefig(filename,
dpi=dpi,
bbox_inches='tight', # 自动裁剪空白
facecolor='white', # 白色背景
edgecolor='none',
transparent=False)
print(f"图表已保存到: {filename}")
# 使用示例
plt.plot([1, 2, 3], [1, 2, 3])
save_chart('best_practice_plot.png')
plt.show()
这些方法可以满足大多数情况下的统计图表保存需求,根据你的具体用途(网页、论文、报告、演示等),选择合适的格式和参数即可。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播