• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Python读取Excel绘制直方图的方法

    发布者: 山止川行 | 发布时间: 2025-6-14 12:22| 查看数: 37| 评论数: 0|帖子模式

    以下将详细介绍如何使用 Python 的
    1. pyecharts
    复制代码
    1. matplotlib
    复制代码
    1. seaborn
    复制代码
    三个库从 Excel 中读取数据并绘制直方图(Histogram)。直方图用于展示数据分布,核心是统计不同区间的频数或频率。每个库的代码示例均包含核心类、函数和属性的详细说明。

    1. 使用 pyecharts 绘制直方图
    1. pyecharts
    复制代码
    是基于 ECharts 的交互式可视化库,但需手动计算直方图的频数分布(因无内置直方图函数)。



    代码示例:
    1. import pandas as pd
    2. import numpy as np
    3. from pyecharts.charts import Bar
    4. from pyecharts import options as opts
    5. # 读取Excel数据
    6. df = pd.read_excel("data.xlsx")
    7. data = df["数值列"].tolist()  # 假设数据列名为"数值列"
    8. # 计算直方图的区间和频数
    9. counts, bins = np.histogram(data, bins=10)  # 分10个区间
    10. x_labels = [f"{bins[i]:.1f}-{bins[i+1]:.1f}" for i in range(len(bins)-1)]
    11. # 创建柱状图(模拟直方图)
    12. bar = Bar()
    13. bar.add_xaxis(x_labels)
    14. bar.add_yaxis("频数", counts.tolist())
    15. # 配置全局选项
    16. bar.set_global_opts(
    17.     title_opts=opts.TitleOpts(title="数值分布直方图"),
    18.     xaxis_opts=opts.AxisOpts(name="区间"),
    19.     yaxis_opts=opts.AxisOpts(name="频数"),
    20.     toolbox_opts=opts.ToolboxOpts()
    21. )
    22. # 渲染为HTML文件
    23. bar.render("pyecharts_histogram.html")
    复制代码
    核心类与函数:


      1. Bar()
      复制代码
      : 柱状图对象,用于模拟直方图。
      1. np.histogram()
      复制代码
      : 计算直方图频数和区间(
      1. bins
      复制代码
      指定区间数量)。
      1. add_xaxis()
      复制代码
      /
      1. add_yaxis()
      复制代码
      : 添加 X/Y 轴数据。
      1. set_global_opts()
      复制代码
      : 配置标题、坐标轴名称等。

    2. 使用 matplotlib 绘制直方图
    1. matplotlib
    复制代码
    是基础绘图库,内置
    1. hist()
    复制代码
    函数直接绘制直方图。
    代码示例:
    1. import pandas as pd
    2. import matplotlib.pyplot as plt
    3. # 读取Excel数据
    4. df = pd.read_excel("data.xlsx")
    5. data = df["数值列"]
    6. # 创建画布和坐标系
    7. fig, ax = plt.subplots(figsize=(10, 6))
    8. # 绘制直方图
    9. ax.hist(
    10.     data,
    11.     bins=10,              # 区间数量
    12.     color="skyblue",      # 颜色
    13.     edgecolor="black",    # 边框颜色
    14.     alpha=0.7,            # 透明度
    15.     density=False         # False显示频数,True显示频率
    16. )
    17. # 添加标题和标签
    18. ax.set_title("数值分布直方图", fontsize=14)
    19. ax.set_xlabel("数值范围", fontsize=12)
    20. ax.set_ylabel("频数", fontsize=12)
    21. ax.grid(axis="y", linestyle="--")  # 显示横向网格线
    22. # 显示图表
    23. plt.tight_layout()
    24. plt.savefig("matplotlib_histogram.png")
    25. plt.show()
    复制代码

    核心函数与参数:


      1. ax.hist()
      复制代码
      : 直方图绘制函数。

        1. bins
        复制代码
        : 区间数量或具体边界值(如
        1. bins=[0, 10, 20]
        复制代码
        )。
        1. color
        复制代码
        /
        1. edgecolor
        复制代码
        : 填充色和边框颜色。
        1. alpha
        复制代码
        : 透明度(0-1)。
        1. density
        复制代码
        : 是否显示频率(归一化)。

      1. ax.set_title()
      复制代码
      /
      1. ax.set_xlabel()
      复制代码
      /
      1. ax.set_ylabel()
      复制代码
      : 标题和坐标轴标签。

    3. 使用 seaborn 绘制直方图
    1. seaborn
    复制代码
    基于
    1. matplotlib
    复制代码
    ,提供更简洁的语法和统计功能(如核密度估计)。
    代码示例:
    1. import pandas as pd
    2. import seaborn as sns
    3. import matplotlib.pyplot as plt
    4. # 读取Excel数据
    5. df = pd.read_excel("data.xlsx")
    6. data = df["数值列"]
    7. # 设置主题
    8. sns.set_theme(style="whitegrid", font="SimHei")  # 中文需指定字体
    9. # 创建直方图
    10. plt.figure(figsize=(10, 6))
    11. ax = sns.histplot(
    12.     data,
    13.     bins=10,                # 区间数量
    14.     kde=True,               # 显示核密度曲线
    15.     color="skyblue",        # 颜色
    16.     edgecolor="black",      # 边框颜色
    17.     stat="count"            # 统计类型(默认count,可选"density")
    18. )
    19. # 添加标题和标签
    20. ax.set_title("数值分布直方图(带核密度估计)", fontsize=14)
    21. ax.set_xlabel("数值范围", fontsize=12)
    22. ax.set_ylabel("频数", fontsize=12)
    23. # 显示图表
    24. plt.tight_layout()
    25. plt.savefig("seaborn_histogram.png")
    26. plt.show()
    复制代码
    核心函数与参数:


      1. sns.histplot()
      复制代码
      : 直方图绘制函数。

        1. kde
        复制代码
        : 是否显示核密度估计曲线(默认
        1. False
        复制代码
        )。
        1. stat
        复制代码
        : 统计类型(
        1. "count"
        复制代码
        频数,
        1. "density"
        复制代码
        频率,
        1. "percent"
        复制代码
        百分比)。
        1. bins
        复制代码
        /
        1. color
        复制代码
        /
        1. edgecolor
        复制代码
        : 同
        1. matplotlib
        复制代码


      1. sns.set_theme()
      复制代码
      : 设置主题样式(如
      1. whitegrid
      复制代码
      1. darkgrid
      复制代码
      )。

    对比总结

    库特点适用场景
    1. pyecharts
    复制代码
    需手动计算频数,生成交互式图表需要网页嵌入或动态交互
    1. matplotlib
    复制代码
    直接绘制,高度可定制需要精细控制图表细节
    1. seaborn
    复制代码
    语法简洁,支持核密度估计快速生成统计图表
    注意事项


    • 数据预处理:确保 Excel 中的目标列是数值类型(非字符串)。
    • 区间划分:调整
      1. bins
      复制代码
      参数优化数据分布展示(如
      1. bins=20
      复制代码
      增加细节)。
    • 交互性
      1. pyecharts
      复制代码
      适合生成 HTML 文件,而
      1. matplotlib
      复制代码
      /
      1. seaborn
      复制代码
      适合静态图片。
    到此这篇关于Python读取Excel绘制直方图的文章就介绍到这了,更多相关Python读取Excel绘制直方图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/python/34007982g.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表