成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

零基礎學習 Python 可視化:Matplotlib、Seaborn、Plotly 基礎教學

開發
本文通過基礎案例帶大家熟悉 Matplotlib、Seaborn、Plotly 可視化的基礎操作。

在這個“數據爆炸”的時代,我們每天都會接觸到大量數據——比如手機里的運動步數、電商平臺的購物記錄、公司的銷售報表。但 raw data(原始數據)本身是枯燥的,就像一堆散落的拼圖碎片,無法直接告訴我們“發生了什么”“為什么發生”。

而數據可視化就是把這些碎片拼成一幅完整的畫。它用圖表、圖形、互動元素代替冰冷的數字,讓數據“說話”。比如:

  • 用折線圖看銷量的月度趨勢,一眼就能發現“618”或“雙11”的峰值;
  • 用散點圖看身高與體重的關系,能快速識別“肥胖”或“偏瘦”的群體;
  • 用熱力圖看用戶在網頁上的點擊分布,能優化產品的界面設計。

Python作為當前最流行的編程語言之一,憑借豐富的可視化庫(Matplotlib、Seaborn、Plotly等)、簡單的語法(比Java、C++容易上手)和強大的生態(與Pandas、Numpy等數據處理庫無縫銜接),成為數據可視化的“首選工具”。

哪怕你是完全沒接觸過編程的新手,只要跟著這篇文章一步步做,也能在1個月內掌握Python可視化的核心技能,用數據講故事。

一、準備工作:搭建你的可視化環境

在開始之前,我們需要先搭建Python的開發環境。對于新手來說,Anaconda是最佳選擇——它自帶了Python解釋器、常用庫(如Matplotlib、Pandas、Seaborn)和開發工具(Jupyter Notebook),省去了手動安裝的麻煩。

1. 安裝Anaconda

  • 下載地址:Anaconda官方網站(選擇對應系統的版本,比如Windows、macOS);
  • 安裝步驟:雙擊安裝包,一路點擊“Next”(注意勾選“Add Anaconda to PATH”,方便在命令行中使用)。

2. 驗證環境是否安裝成功

打開Anaconda Prompt(Windows)或終端(macOS),輸入以下命令:

python --version  # 查看Python版本,應該顯示3.8及以上
conda list matplotlib  # 查看Matplotlib是否安裝,顯示版本號即成功

3. 選擇開發工具

推薦使用Jupyter Notebook(Anaconda自帶),它能將代碼、圖表、注釋放在同一個文檔中,非常適合學習和展示。啟動方式:

  • 打開Anaconda Navigator,點擊“Jupyter Notebook”;
  • 在瀏覽器中會打開Jupyter界面,點擊“New”→“Python 3”,創建一個新的 Notebook。

二、基礎篇:用Matplotlib畫第一個圖表

Matplotlib是Python中最基礎、最常用的可視化庫,被稱為“可視化界的Photoshop”——它能繪制幾乎所有類型的圖表,且高度可定制。

1. 第一個折線圖:展示銷量趨勢

假設我們有一組2024年上半年的銷量數據,想看看每月的增長趨勢。步驟如下:

(1) 導入庫

首先需要導入Matplotlib的pyplot模塊(通常縮寫為plt):

import matplotlib.pyplot as plt

(2) 準備數據

用列表存儲月份和銷量數據:

months = ['1月', '2月', '3月', '4月', '5月', '6月']  # x軸:月份
sales = [120, 150, 180, 200, 220, 250]  # y軸:銷量(萬元)

(3) 繪制折線圖

用plt.plot()函數繪制折線圖,參數說明:

  • months:x軸數據;
  • sales:y軸數據;
  • marker='o':在折線上添加圓形標記(方便看每個點的數值);
  • color='b':折線顏色為藍色(b=blue);
  • label='銷量趨勢':圖例標簽(用于說明圖表內容)。

代碼:

plt.plot(months, sales, marker='o', color='b', label='銷量趨勢')

(4) 添加圖表元素

為了讓圖表更清晰,需要添加x軸標簽、y軸標簽、標題和圖例:

plt.xlabel('月份')  # x軸標簽
plt.ylabel('銷量(萬元)')  # y軸標簽
plt.title('2024年上半年銷量趨勢')  # 圖表標題
plt.legend()  # 顯示圖例(對應label參數)

(5) 顯示圖表

最后用plt.show()函數顯示圖表:

plt.show()

(6) 效果展示

運行以上代碼,會彈出一個窗口,顯示一張藍色折線圖:折線上的每個點都有圓形標記,x軸是月份,y軸是銷量,標題清晰,圖例說明“銷量趨勢”。從圖中可以明顯看到,銷量從1月的120萬元穩步增長到6月的250萬元,增長趨勢明顯。

2. 擴展:繪制其他基礎圖表

Matplotlib支持多種圖表類型,以下是幾個常用的例子:

(1) 柱狀圖:比較不同產品的銷量

用plt.bar()函數繪制柱狀圖,適合比較類別數據(如不同產品、不同地區的銷量):

products = ['產品A', '產品B', '產品C', '產品D']  # 產品類別
product_sales = [300, 250, 400, 350]  # 各產品銷量

plt.bar(products, product_sales, color=['r', 'g', 'b', 'y'])  # 柱狀圖,不同產品用不同顏色
plt.xlabel('產品類別')
plt.ylabel('銷量(萬元)')
plt.title('2024年上半年產品銷量對比')
plt.show()

(2) 散點圖:看身高與體重的相關性

用plt.scatter()函數繪制散點圖,適合展示兩個變量之間的關系(如身高與體重、廣告投入與銷售額):

height = [160, 165, 170, 175, 180]  # 身高(cm)
weight = [50, 55, 60, 65, 70]  # 體重(kg)

plt.scatter(height, weight, marker='s', color='purple', s=100)  # 散點圖,正方形標記,紫色,大小100
plt.xlabel('身高(cm)')
plt.ylabel('體重(kg)')
plt.title('身高與體重的相關性')
plt.show()

(3) 餅圖:展示產品銷量占比

用plt.pie()函數繪制餅圖,適合展示各部分占總體的比例(如產品銷量占比、用戶來源占比):

product_sales = [300, 250, 400, 350]  # 各產品銷量
products = ['產品A', '產品B', '產品C', '產品D']  # 產品類別

plt.pie(product_sales, labels=products, autopct='%1.1f%%', startangle=90)  # 餅圖,顯示百分比,起始角度90度
plt.title('2024年上半年產品銷量占比')
plt.show()

三、進階篇:用Seaborn讓圖表更“專業”

Matplotlib的優點是靈活,但缺點是默認樣式不夠美觀,而且繪制統計圖表(如直方圖、箱線圖)需要寫較多代碼。這時,Seaborn就派上用場了——它是基于Matplotlib的高級可視化庫,自帶漂亮的默認樣式,且能快速繪制統計圖表。

1. Seaborn的優勢

  • 默認樣式美觀:Seaborn的默認顏色搭配和布局比Matplotlib更符合現代審美;
  • 代碼更簡潔:繪制統計圖表只需一行代碼,無需手動設置太多參數;
  • 支持統計分析:能快速計算數據的分布、相關性等統計指標,并可視化。

2. 安裝Seaborn

如果Anaconda沒自帶Seaborn,可以用以下命令安裝:

conda install seaborn

3. 用Seaborn繪制統計圖表

(1) 直方圖:展示數據分布

用seaborn.histplot()函數繪制直方圖,適合展示連續變量的分布(如身高、體重、銷售額的分布):

import seaborn as sns
import matplotlib.pyplot as plt

# 加載Seaborn自帶的iris數據集(鳶尾花數據,包含花瓣長度、寬度等特征)
iris = sns.load_dataset('iris')

# 繪制花瓣長度的直方圖, bins=20表示將數據分成20個區間
sns.histplot(iris['petal_length'], bins=20, color='green', kde=True)  # kde=True表示添加核密度估計曲線
plt.xlabel('花瓣長度(cm)')
plt.ylabel('數量')
plt.title('鳶尾花花瓣長度分布')
plt.show()

(2) 箱線圖:展示數據的離散程度

用seaborn.boxplot()函數繪制箱線圖,適合展示數據的中位數、四分位數、異常值(如不同產品銷量的離散程度):

# 用iris數據集的花瓣長度,按物種分組繪制箱線圖
sns.boxplot(x='species', y='petal_length', data=iris, palette='Set2')  # palette='Set2'表示使用Set2顏色 palette
plt.xlabel('物種')
plt.ylabel('花瓣長度(cm)')
plt.title('不同物種鳶尾花花瓣長度分布')
plt.show()

(3) 配對圖:探索多變量關系

用seaborn.pairplot()函數繪制配對圖,適合展示多個變量之間的兩兩關系(如iris數據集中四個特征的相關性):

# 繪制配對圖,按物種分組(hue='species'),不同物種用不同顏色
sns.pairplot(iris, hue='species', palette='husl')
plt.title('鳶尾花特征配對圖')
plt.show()

(4) 效果展示

Seaborn的圖表默認樣式非常漂亮,比如配對圖中,每個子圖展示兩個特征的關系,不同物種用不同顏色標記,能快速發現“ versicolor 物種的花瓣長度比 setosa 長”這樣的規律。

四、高級篇:用Plotly做交互式可視化

前面的Matplotlib和Seaborn繪制的是靜態圖表,無法與用戶互動。而Plotly是一個交互式可視化庫,能繪制可縮放、可 hover、可點擊的圖表,非常適合做網頁展示或報告。

1. Plotly的優勢

  • 交互式:鼠標 hover 能看到具體數值,縮放、拖動圖表能查看細節;
  • 跨平臺:能導出為HTML文件,在瀏覽器中打開,無需安裝任何軟件;
  • 支持復雜圖表:如熱力圖、地圖、3D圖表等。

2. 安裝Plotly

用以下命令安裝Plotly:

conda install plotly

3. 用Plotly繪制交互式圖表

(1) 交互式折線圖:展示各國GDP增長趨勢

用plotly.express.line()函數繪制交互式折線圖,數據用Plotly自帶的gapminder數據集(包含各國的GDP、人口等數據):

import plotly.express as px

# 加載gapminder數據集
gapminder = px.data.gapminder()

# 繪制交互式折線圖:x軸是年份,y軸是GDP per Capita,按國家分組(color='country')
fig = px.line(gapminder, x='year', y='gdpPercap', color='country', title='各國GDP per Capita增長趨勢')

# 顯示圖表(在瀏覽器中打開)
fig.show()

(2) 交互式散點圖:展示GDP與預期壽命的關系

用plotly.express.scatter()函數繪制交互式散點圖,添加大小(表示人口)和顏色(表示 continent):

# 繪制交互式散點圖:x軸是GDP per Capita,y軸是預期壽命,大小表示人口,顏色表示 continent
fig = px.scatter(gapminder, x='gdpPercap', y='lifeExp', size='pop', color='continent', hover_name='country', title='GDP與預期壽命的關系')

# 顯示圖表
fig.show()

(3) 交互式地圖:展示各地區銷量分布

用plotly.express.choropleth()函數繪制交互式地圖,適合展示地理數據(如各地區的銷量、人口):

# 假設我們有一組地區銷量數據(地區是國家名稱,銷量是數值)
region_sales = pd.DataFrame({
    '地區': ['China', 'India', 'United States', 'Indonesia', 'Brazil'],
    '銷量': [1000, 800, 1200, 600, 700]
})

# 繪制交互式地圖:顏色表示銷量,locationmode='country names'表示地區是國家名稱
fig = px.choropleth(region_sales, locations='地區', locationmode='country names', color='銷量', title='各地區總銷量分布')

# 顯示圖表
fig.show()

(4) 效果展示

運行以上代碼,會在瀏覽器中打開一個交互式圖表。比如交互式散點圖,鼠標 hover 到某個點,會顯示國家名稱、GDP、預期壽命和人口;點擊圖例中的“Asia”,會隱藏亞洲國家的數據;縮放x軸,能查看某段GDP區間的國家分布。

五、實戰篇:用Python可視化分析電商銷售數據

現在,我們將用前面學的三個庫(Matplotlib、Seaborn、Plotly),結合Pandas(數據處理庫),分析一個真實的電商銷售數據集,完成一個完整的可視化項目。

1. 數據準備

我們使用Kaggle上的“E-commerce Sales Dataset”(電商銷售數據集),包含以下字段:

  • Order ID:訂單ID;
  • Date:訂單日期;
  • Product Category:產品類別;
  • Region:地區;
  • Sales:銷量(美元)。

2. 數據導入與清洗

首先用Pandas導入數據,并處理缺失值和日期格式:

import pandas as pd

# 導入數據(假設數據文件在當前目錄下)
sales_data = pd.read_csv('ecommerce_sales.csv')

# 查看數據前5行
print(sales_data.head())

# 處理缺失值:用均值填充銷量列的缺失值
sales_data['Sales'] = sales_data['Sales'].fillna(sales_data['Sales'].mean())

# 處理日期格式:將Date列轉換為datetime類型
sales_data['Date'] = pd.to_datetime(sales_data['Date'])

# 新增月份列(用于按月份統計)
sales_data['Month'] = sales_data['Date'].dt.to_period('M')

3. 可視化分析

(1) 用Matplotlib畫月度銷量趨勢圖

import matplotlib.pyplot as plt

# 按月份統計總銷量
monthly_sales = sales_data.groupby('Month')['Sales'].sum().reset_index()

# 繪制折線圖
plt.figure(figsize=(12, 6))  # 設置圖表大小
plt.plot(monthly_sales['Month'].astype(str), monthly_sales['Sales'], marker='o', color='orange', linewidth=2)
plt.xlabel('月份')
plt.ylabel('總銷量(美元)')
plt.title('2024年電商月度銷量趨勢')
plt.xticks(rotation=45)  # 旋轉x軸標簽,避免重疊
plt.grid(True)  # 顯示網格線
plt.show()

(2) 用Seaborn畫產品類別銷量箱線圖

import seaborn as sns

# 繪制箱線圖:按產品類別分組,展示銷量的離散程度
plt.figure(figsize=(12, 6))
sns.boxplot(x='Product Category', y='Sales', data=sales_data, palette='viridis')
plt.xlabel('產品類別')
plt.ylabel('銷量(美元)')
plt.title('不同產品類別銷量分布')
plt.xticks(rotation=45)
plt.show()

(3) 用Plotly畫交互式地區銷量地圖

import plotly.express as px

# 按地區統計總銷量
region_sales = sales_data.groupby('Region')['Sales'].sum().reset_index()

# 繪制交互式地圖:顏色表示銷量,locationmode='country names'表示地區是國家名稱
fig = px.choropleth(region_sales, locations='Region', locationmode='country names', color='Sales', title='2024年電商地區銷量分布')
fig.show()

本文通過基礎案例帶大家熟悉Matplotlib、Seaborn、Plotly可視化的基礎操作,大家如果想進一步學習可以多查閱官方文檔及案例。

責任編輯:趙寧寧 來源: Python數智工坊
相關推薦

2024-12-24 07:30:00

Seaborn可視化Python

2024-04-01 11:53:42

PlotlyPython數據可視化

2024-12-24 12:00:00

Matplotlib可視化分析Python

2022-08-26 09:15:58

Python可視化plotly

2022-09-19 16:24:33

數據可視化Matplotlib工具

2017-07-18 14:40:05

大數據數據可視化

2021-07-02 14:07:00

可視化Plotly漏斗圖

2021-03-23 17:21:48

Java編程開發

2019-11-11 14:09:17

Swift數據科學語言

2021-08-30 11:40:06

PythonSeaborn可視化

2020-08-19 17:31:03

誤差科學測量可視化

2020-06-29 15:40:53

PlotlyPython數據可視化

2023-08-01 16:01:59

可視化Seaborn

2018-08-24 09:00:00

DevOps持續集成連續部署

2017-09-18 10:48:06

深度學習零基礎入門

2021-01-13 14:55:54

JavaPython開發

2020-09-27 11:15:37

可視化PandasPython

2012-02-22 10:33:36

Wi-Fi

2025-04-01 08:30:00

Plotly數據可視化數據分析

2025-02-10 00:45:00

pairplotheatmaplmplot
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美国产综合 | 中文字幕一区在线观看视频 | 国产精品久久毛片av大全日韩 | 国产精品久久久久久婷婷天堂 | 中文字幕在线观看成人 | 国产精品亚洲第一区在线暖暖韩国 | 久久久.com| 国产免费麻豆视频 | 国产 欧美 日韩 一区 | 日本午夜免费福利视频 | 国产成人99久久亚洲综合精品 | 亚洲三级视频 | 国产精品不卡一区 | 日韩视频精品在线 | 欧美成年网站 | 伊人狠狠 | 国产精品美女久久久久久免费 | 国产精品观看 | 欧美精品一区二区三区蜜桃视频 | 国产精品高清在线 | 999精品在线观看 | 亚洲精品在线国产 | 国产欧美精品 | 黄色一级片视频 | 在线午夜电影 | 日韩精品 电影一区 亚洲 | 成人久久久久 | 免费a国产 | 亚洲精品一区中文字幕乱码 | 色爱av | 中文在线日韩 | www.久| 在线国产视频 | 亚洲第一中文字幕 | 亚洲精品久久久一区二区三区 | 欧美中文在线 | 午夜成人免费视频 | 青青伊人久久 | 国产精品jizz在线观看老狼 | 免费观看的av毛片的网站 | 欧美精品在线一区二区三区 |