You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Matplotlib直方图与过程能力分析结果一同导出至TXT文件?

问题描述

我用以下代码绘制了直方图:

plt.figure(figsize=(15,10))
plt.hist(Obs1, color="lightgrey", edgecolor="black", density=True)

目前我已经通过以下代码将过程能力分析结果导出到process_results.txt文件:

with open('process_results.txt', "w") as results:
    results.write("PROCESS CAPABILITY ANALYSIS\n")

    results.write("-----------------------------------\n")
    results.write(f"Specifications\n")
    results.write(f"\nTaget: {Target}\n")
    results.write(f"LSL: {LSL}\n")
    results.write(f"USL: {USL}\n")

请问如何将上述直方图也包含到该TXT文件中?

解决方案

由于TXT是纯文本格式,无法直接嵌入图像,你可以采用以下两种思路实现需求:

方案一:保存图片并在TXT中记录路径

  1. 先将直方图保存为图片文件(如PNG格式):
plt.figure(figsize=(15,10))
plt.hist(Obs1, color="lightgrey", edgecolor="black", density=True)
# 可选:添加图表标注
plt.title("Observation Histogram")
plt.xlabel("Value")
plt.ylabel("Density")
# 保存图片到本地
plt.savefig("histogram.png")
plt.close()  # 关闭画布释放资源
  1. 修改TXT写入代码,补充图片路径说明:
with open('process_results.txt', "w") as results:
    results.write("PROCESS CAPABILITY ANALYSIS\n")
    results.write("-----------------------------------\n")
    results.write(f"Specifications\n")
    results.write(f"\nTaget: {Target}\n")
    results.write(f"LSL: {LSL}\n")
    results.write(f"USL: {USL}\n")
    # 添加直方图相关记录
    results.write("\n-----------------------------------\n")
    results.write("HISTOGRAM\n")
    results.write("对应的直方图已保存为:histogram.png\n")

方案二:生成ASCII艺术直方图(纯文本形式)

如果需要把直方图直接以文本形式嵌入TXT,可通过以下两种方式实现:

方法1:用numpy+原生代码生成ASCII直方图

import numpy as np

# 先计算直方图统计数据
counts, bins = np.histogram(Obs1, density=True)
bin_centers = (bins[:-1] + bins[1:])/2

# 生成ASCII直方图文本
hist_text = "ASCII Histogram:\n"
max_count = counts.max()
# 按比例生成星号柱状图
for center, count in zip(bin_centers, counts):
    bar = '*' * int(count / max_count * 50)
    hist_text += f"{center:.2f} | {bar} ({count:.4f})\n"

# 写入TXT文件
with open('process_results.txt', "w") as results:
    results.write("PROCESS CAPABILITY ANALYSIS\n")
    results.write("-----------------------------------\n")
    results.write(f"Specifications\n")
    results.write(f"\nTaget: {Target}\n")
    results.write(f"LSL: {LSL}\n")
    results.write(f"USL: {USL}\n")
    # 添加ASCII直方图
    results.write("\n-----------------------------------\n")
    results.write(hist_text)

方法2:用第三方库asciichartpy生成

先安装库:pip install asciichartpy

import asciichartpy

# 生成ASCII直方图
hist_ascii = asciichartpy.plot(Obs1, {'height': 10})

# 写入TXT文件
with open('process_results.txt', "w") as results:
    results.write("PROCESS CAPABILITY ANALYSIS\n")
    results.write("-----------------------------------\n")
    results.write(f"Specifications\n")
    results.write(f"\nTaget: {Target}\n")
    results.write(f"LSL: {LSL}\n")
    results.write(f"USL: {USL}\n")
    # 添加ASCII直方图
    results.write("\n-----------------------------------\n")
    results.write("ASCII Histogram:\n")
    results.write(hist_ascii + "\n")

内容的提问来源于stack exchange,提问作者user19613662

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:50:23