欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python讀取Excel繪制直方圖的方法

 更新時間:2025年04月22日 08:46:58   投稿:mrr  
這篇文章主要介紹了Python讀取Excel繪制直方圖,以下將詳細介紹如何使用 Python 的?pyecharts、matplotlib?和?seaborn?三個庫從 Excel 中讀取數(shù)據(jù)并繪制直方圖(Histogram),需要的朋友可以參考下

以下將詳細介紹如何使用 Python 的 pyecharts、matplotlib 和 seaborn 三個庫從 Excel 中讀取數(shù)據(jù)并繪制直方圖(Histogram)。直方圖用于展示數(shù)據(jù)分布,核心是統(tǒng)計不同區(qū)間的頻數(shù)或頻率。每個庫的代碼示例均包含核心類、函數(shù)和屬性的詳細說明。

1. 使用 pyecharts 繪制直方圖

pyecharts 是基于 ECharts 的交互式可視化庫,但需手動計算直方圖的頻數(shù)分布(因無內(nèi)置直方圖函數(shù))。

代碼示例:

import pandas as pd
import numpy as np
from pyecharts.charts import Bar
from pyecharts import options as opts
# 讀取Excel數(shù)據(jù)
df = pd.read_excel("data.xlsx")
data = df["數(shù)值列"].tolist()  # 假設數(shù)據(jù)列名為"數(shù)值列"
# 計算直方圖的區(qū)間和頻數(shù)
counts, bins = np.histogram(data, bins=10)  # 分10個區(qū)間
x_labels = [f"{bins[i]:.1f}-{bins[i+1]:.1f}" for i in range(len(bins)-1)]
# 創(chuàng)建柱狀圖(模擬直方圖)
bar = Bar()
bar.add_xaxis(x_labels)
bar.add_yaxis("頻數(shù)", counts.tolist())
# 配置全局選項
bar.set_global_opts(
    title_opts=opts.TitleOpts(title="數(shù)值分布直方圖"),
    xaxis_opts=opts.AxisOpts(name="區(qū)間"),
    yaxis_opts=opts.AxisOpts(name="頻數(shù)"),
    toolbox_opts=opts.ToolboxOpts()
)
# 渲染為HTML文件
bar.render("pyecharts_histogram.html")

核心類與函數(shù):

  • Bar(): 柱狀圖對象,用于模擬直方圖。
  • np.histogram(): 計算直方圖頻數(shù)和區(qū)間(bins 指定區(qū)間數(shù)量)。
  • add_xaxis()/add_yaxis(): 添加 X/Y 軸數(shù)據(jù)。
  • set_global_opts(): 配置標題、坐標軸名稱等。

2. 使用 matplotlib 繪制直方圖

matplotlib 是基礎繪圖庫,內(nèi)置 hist() 函數(shù)直接繪制直方圖。

代碼示例:

import pandas as pd
import matplotlib.pyplot as plt
# 讀取Excel數(shù)據(jù)
df = pd.read_excel("data.xlsx")
data = df["數(shù)值列"]
# 創(chuàng)建畫布和坐標系
fig, ax = plt.subplots(figsize=(10, 6))
# 繪制直方圖
ax.hist(
    data, 
    bins=10,              # 區(qū)間數(shù)量
    color="skyblue",      # 顏色
    edgecolor="black",    # 邊框顏色
    alpha=0.7,            # 透明度
    density=False         # False顯示頻數(shù),True顯示頻率
)
# 添加標題和標簽
ax.set_title("數(shù)值分布直方圖", fontsize=14)
ax.set_xlabel("數(shù)值范圍", fontsize=12)
ax.set_ylabel("頻數(shù)", fontsize=12)
ax.grid(axis="y", linestyle="--")  # 顯示橫向網(wǎng)格線
# 顯示圖表
plt.tight_layout()
plt.savefig("matplotlib_histogram.png")
plt.show()

核心函數(shù)與參數(shù):

  • ax.hist(): 直方圖繪制函數(shù)。
    • bins: 區(qū)間數(shù)量或具體邊界值(如 bins=[0, 10, 20])。
    • color/edgecolor: 填充色和邊框顏色。
    • alpha: 透明度(0-1)。
    • density: 是否顯示頻率(歸一化)。
  • ax.set_title()/ax.set_xlabel()/ax.set_ylabel(): 標題和坐標軸標簽。

3. 使用 seaborn 繪制直方圖

seaborn 基于 matplotlib,提供更簡潔的語法和統(tǒng)計功能(如核密度估計)。

代碼示例:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 讀取Excel數(shù)據(jù)
df = pd.read_excel("data.xlsx")
data = df["數(shù)值列"]
# 設置主題
sns.set_theme(style="whitegrid", font="SimHei")  # 中文需指定字體
# 創(chuàng)建直方圖
plt.figure(figsize=(10, 6))
ax = sns.histplot(
    data,
    bins=10,                # 區(qū)間數(shù)量
    kde=True,               # 顯示核密度曲線
    color="skyblue",        # 顏色
    edgecolor="black",      # 邊框顏色
    stat="count"            # 統(tǒng)計類型(默認count,可選"density")
)
# 添加標題和標簽
ax.set_title("數(shù)值分布直方圖(帶核密度估計)", fontsize=14)
ax.set_xlabel("數(shù)值范圍", fontsize=12)
ax.set_ylabel("頻數(shù)", fontsize=12)
# 顯示圖表
plt.tight_layout()
plt.savefig("seaborn_histogram.png")
plt.show()

核心函數(shù)與參數(shù):

  • sns.histplot(): 直方圖繪制函數(shù)。
    • kde: 是否顯示核密度估計曲線(默認 False)。
    • stat: 統(tǒng)計類型("count" 頻數(shù),"density" 頻率,"percent" 百分比)。
    • bins/color/edgecolor: 同 matplotlib。
  • sns.set_theme(): 設置主題樣式(如 whitegrid、darkgrid)。

對比總結

特點適用場景
pyecharts需手動計算頻數(shù),生成交互式圖表需要網(wǎng)頁嵌入或動態(tài)交互
matplotlib直接繪制,高度可定制需要精細控制圖表細節(jié)
seaborn語法簡潔,支持核密度估計快速生成統(tǒng)計圖表

注意事項

  • 數(shù)據(jù)預處理:確保 Excel 中的目標列是數(shù)值類型(非字符串)。
  • 區(qū)間劃分:調(diào)整 bins 參數(shù)優(yōu)化數(shù)據(jù)分布展示(如 bins=20 增加細節(jié))。
  • 交互性pyecharts 適合生成 HTML 文件,而 matplotlib/seaborn 適合靜態(tài)圖片。

到此這篇關于Python讀取Excel繪制直方圖的文章就介紹到這了,更多相關Python讀取Excel繪制直方圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python實現(xiàn)動態(tài)規(guī)劃算法的示例代碼

    python實現(xiàn)動態(tài)規(guī)劃算法的示例代碼

    本文主要介紹了python實現(xiàn)動態(tài)規(guī)劃算法的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • wxpython 最小化到托盤與歡迎圖片的實現(xiàn)方法

    wxpython 最小化到托盤與歡迎圖片的實現(xiàn)方法

    這篇文章主要分享一個python實例代碼,使用wxpython實現(xiàn)最小化到托盤與歡迎圖片,需要的朋友可以參考下
    2014-06-06
  • 爬蟲訓練前端基礎Bootstrap5排版表格圖像

    爬蟲訓練前端基礎Bootstrap5排版表格圖像

    這篇文章主要為大家介紹了爬蟲訓練前端基礎Bootstrap5排版表格圖像,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • pytorch中Transformer進行中英文翻譯訓練的實現(xiàn)

    pytorch中Transformer進行中英文翻譯訓練的實現(xiàn)

    本文主要介紹了pytorch中Transformer進行中英文翻譯訓練的實現(xiàn),詳細闡述了使用PyTorch實現(xiàn)Transformer模型的代碼實現(xiàn)和訓練過程,具有一定參考價值,感興趣的可以了解一下
    2023-08-08
  • python?類型轉(zhuǎn)換函數(shù)示例詳解

    python?類型轉(zhuǎn)換函數(shù)示例詳解

    這篇文章主要介紹了python?類型轉(zhuǎn)換函數(shù)示例詳解,通過float()將一個字符串或數(shù)字轉(zhuǎn)換為浮點數(shù),本文結合示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • python利用ddddocr包ocr識別圖片碼的實現(xiàn)

    python利用ddddocr包ocr識別圖片碼的實現(xiàn)

    ddddocr是一個輕量級的OCR庫,用于識別圖片中的文字和驗證碼,本文主要介紹了python利用ddddocr包ocr識別圖片碼的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • python如何利用joblib保存訓練模型

    python如何利用joblib保存訓練模型

    這篇文章主要介紹了python如何利用joblib保存訓練模型問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • python 抽象類的使用詳解

    python 抽象類的使用詳解

    這篇文章主要介紹了python 抽象類的使用詳解,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python的異常問題(Python Exception)

    Python的異常問題(Python Exception)

    這篇文章主要介紹了Python的異常問題(Python Exception),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python中不同進制的語法及轉(zhuǎn)換方法分析

    Python中不同進制的語法及轉(zhuǎn)換方法分析

    這篇文章主要介紹了Python中不同進制的語法及轉(zhuǎn)換方法,結合實例形式分析了Python不同進制的表示方法及相互轉(zhuǎn)換方法,需要的朋友可以參考下
    2016-07-07

最新評論