python读取excel并且绘制柱状图 Python读取Excel绘制直方图的
目录
- 1. 使用pyecharts绘制直方图
- 代码示例:
- 核心类与函数:
- 2. 使用matplotlib绘制直方图
- 代码示例:
- 核心函数与参数:
- 3. 使用seaborn绘制直方图
- 代码示例:
- 核心函数与参数:
- 对比拓展资料
- 注意事项
下面内容将详细介绍怎样使用 Python 的pyecharts
、matplotlib
和seaborn
三个库从 Excel 中读取数据并绘制直方图(Histogram)。直方图用于展示数据分布,核心是统计不同区间的频数或频率。每个库的代码示例均包含核心类、函数和属性的详细说明。
1. 使用pyecharts绘制直方图
pyecharts
是基于 ECharts 的交互式可视化库,但需手动计算直方图的频数分布(因无内置直方图函数)。
代码示例:
import pandas as pdimport numpy as npfrom pyecharts.charts import Barfrom pyecharts import options as opts 读取Excel数据df = pd.read_excel(“data.xlsx”)data = df[“数值列”].tolist() 假设数据列名为”数值列” 计算直方图的区间和频数counts, bins = np.histogram(data, bins=10) 分10个区间x_labels = [f”bins[i]:.1f}-bins[i+1]:.1f}” for i in range(len(bins)-1)] 创建柱状图(模拟直方图)bar = Bar()bar.add_xaxis(x_labels)bar.add_yaxis(“频数”, counts.tolist()) 配置全局选项bar.set_global_opts( title_opts=opts.TitleOpts(title=”数值分布直方图”), xaxis_opts=opts.AxisOpts(name=”区间”), yaxis_opts=opts.AxisOpts(name=”频数”), toolbox_opts=opts.ToolboxOpts()) 渲染为HTML文件bar.render(“pyecharts_histogram.html”)
核心类与函数:
Bar()
: 柱状图对象,用于模拟直方图。np.histogram()
: 计算直方图频数和区间(bins
指定区间数量)。add_xaxis()
/add_yaxis()
: 添加 X/Y 轴数据。set_global_opts()
: 配置深入了解、坐标轴名称等。
2. 使用matplotlib绘制直方图
matplotlib
是基础绘图库,内置hist()
函数直接绘制直方图。
代码示例:
import pandas as pdimport matplotlib.pyplot as plt 读取Excel数据df = pd.read_excel(“data.xlsx”)data = df[“数值列”] 创建画布和坐标系fig, ax = plt.subplots(figsize=(10, 6)) 绘制直方图ax.hist( data, bins=10, 区间数量 color=”skyblue”, 颜色 edgecolor=”black”, 边框颜色 alpha=0.7, 透明度 density=False False显示频数,True显示频率) 添加深入了解和标签ax.set_title(“数值分布直方图”, fontsize=14)ax.set_xlabel(“数值范围”, fontsize=12)ax.set_ylabel(“频数”, fontsize=12)ax.grid(axis=”y”, linestyle=”–“) 显示横向网格线 显示图表plt.tight_layout()plt.savefig(“matplotlib_histogram.png”)plt.show()
核心函数与参数:
ax.hist()
: 直方图绘制函数。bins
: 区间数量或具体边界值(如bins=[0, 10, 20]
)。color
/edgecolor
: 填充色和边框颜色。alpha
: 透明度(0-1)。density
: 是否显示频率(归一化)。
ax.set_title()
/ax.set_xlabel()
/ax.set_ylabel()
: 深入了解和坐标轴标签。
3. 使用seaborn绘制直方图
seaborn
基于matplotlib
,提供更简洁的语法和统计功能(如核密度估计)。
代码示例:
import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt 读取Excel数据df = pd.read_excel(“data.xlsx”)data = df[“数值列”] 设置主题sns.set_theme(style=”whitegrid”, font=”SimHei”) 中文需指定字体 创建直方图plt.figure(figsize=(10, 6))ax = sns.histplot( data, bins=10, 区间数量 kde=True, 显示核密度曲线 color=”skyblue”, 颜色 edgecolor=”black”, 边框颜色 stat=”count” 统计类型(默认count,可选”density”)) 添加深入了解和标签ax.set_title(“数值分布直方图(带核密度估计)”, fontsize=14)ax.set_xlabel(“数值范围”, fontsize=12)ax.set_ylabel(“频数”, fontsize=12) 显示图表plt.tight_layout()plt.savefig(“seaborn_histogram.png”)plt.show()
核心函数与参数:
sns.histplot()
: 直方图绘制函数。kde
: 是否显示核密度估计曲线(默认False
)。stat
: 统计类型("count"
频数,"density"
频率,"percent"
百分比)。bins
/color
/edgecolor
: 同matplotlib
。
sns.set_theme()
: 设置主题样式(如whitegrid
、darkgrid
)。
对比拓展资料
库 | 特点 | 适用场景 |
---|---|---|
pyecharts |
需手动计算频数,生成交互式图表 | 需要网页嵌入或动态交互 |
matplotlib |
直接绘制,高度可定制 | 需要精细控制图表细节 |
seaborn |
语法简洁,支持核密度估计 | 快速生成统计图表 |
注意事项
- 数据预处理:确保 Excel 中的目标列是数值类型(非字符串)。
- 区间划分:调整
bins
参数优化数据分布展示(如bins=20
增加细节)。 - 交互性:
pyecharts
适合生成 HTML 文件,而matplotlib
/seaborn
适合静态图片。
到此这篇关于Python读取Excel绘制直方图的文章就介绍到这了,更多相关Python读取Excel绘制直方图内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
无论兄弟们可能感兴趣的文章:
- Python获取excel的数据并绘制箱型图和直方图的技巧实例
- Python实现多条件筛选Excel数据并批量绘制直方图
- Python中读取Excel最快的几种常见技巧
- python使用openpyxl打开及读取excel表格经过
- Python读取和写入txt、Excel文件和JSON文件的技巧
- 使用Python读取Excel数据并写入到CSV、XML和文本
- 使用Python第三方库xlrd读取Excel中的数据的流程步骤