Python绘制直方图实战:双列与单列数据可视化

追风的人
追风的人
发布时间:2026-10-15| 6人浏览过
原创

本文详细演示了如何使用Python绘制直方图。通过读取Excel文件,分别展示了利用Matplotlib绘制双变量条形图以及结合NumPy与Pyecharts生成单变量频率分布直方图的具体代码。内容涵盖数据读取、参数设置及图表渲染,为数据可视化提供实用参考。

Python直方图绘制概述

本文分享Python绘制直方图的具体实现代码,供读者参考学习。

双列数据直方图绘制

首先介绍如何使用两列数据绘制直方图(条形图形式)。

#coding=gbk

import xlwings as xw
import pandas  as pd
import matplotlib.pyplot as plt

#pd.set_option('display.max_columns', None)  #解决表格多列时中间省略显示问题
#pd.set_option('display.max_rows', None)    #解决表格多行时中间省略显示问题

#读取excel文件中的数据
app = xw.App(visible = False, add_book = False)
workbook = app.books.open("score1000.xlsx")
worksheet = workbook.sheets[0]  #使用sheets()方法获取所有sheet页,加个序号获取某个sheet页
values = worksheet.range("A1").expand().options(pd.DataFrame, index = False).value
print(values)
workbook.close()
app.quit()

#绘制直方图
figure = plt.figure()
#plt.rcParams['font.sans-serif'] = ['SimHei']  #解决图表中中文显示问题
#plt.rcParams['axes.unicode_minus'] = False   #解决图表中负号显示问题

x = values['total_score']  #指定X轴
y = values['interface_delta_B']  #指定Y轴
plt.bar(x, y, color = 'blue')

#设置图表参数
plt.xlabel('total_score', fontsize = 15, color = 'black')   #设置x轴标签
plt.ylabel('interface_delta_B', fontsize = 15, color = 'green')   #设置y轴标签
#plt.title('score', fontsize = 20)  #设置标题
#plt.axis([-1, 6, -2, 2])   #可手动设置x轴y轴范围
#plt.grid(True)   #设置网格

plt.show()

单列数据直方图绘制

接着展示如何基于单列数据绘制直方图,分析数据分布。

# coding=gbk
import pandas as pd
import matplotlib.pyplot as plt
from pyecharts import options as opts
from pyecharts.charts import Bar
import numpy as np

df = pd.read_excel("score1000.xlsx",engine='openpyxl')
#print(df["total_score"])

#使用matplotlib画图
# plt.figure()
# plt.hist(df["interface_delta_B"])
# plt.show()


hist,bin_edges = np.histogram(df["interface_delta_B"],bins=100)
# # print(bin_edges)
# # print(len(bin_edges))
# # print(len(hist))

bar=(
    Bar()
    .add_xaxis([str(x) for x in bin_edges[:-1]])
    .add_yaxis("",[float(x) for x in hist],category_gap=0)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="interface_delta_B",pos_left="center"),
        legend_opts=opts.LegendOpts(is_show=False)
    )
)
bar.render("F:total_score.html")

以上内容为本文的全部介绍,希望能为读者的学习和工作提供帮助,欢迎持续关注本站获取更多技术分享。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。