Hướng dẫn heatmap with two variables python - bản đồ nhiệt với hai biến python

Trực quan hóa dữ liệu với các bản đồ nhiệt là một cách tuyệt vời để thực hiện phân tích dữ liệu khám phá, khi bạn có một tập dữ liệu với nhiều biến. Nhiệt có thể tiết lộ mẫu chung trong bộ dữ liệu, ngay lập tức. Và rất dễ dàng để tạo ra các bản đồ nhiệt đẹp với thư viện Seaborn ở Python.

Hãy cho chúng tôi xem 3 ví dụ về việc tạo hình ảnh trực quan với Seaborn. Một trong những thao tác thực hiện trước khi tạo bản đồ nhiệt là nó sử dụng chức năng trục gandas để định hình lại dữ liệu để tạo bản đồ nhiệt.

Trước tiên chúng ta hãy lấy các gói cần thiết để tạo bản đồ nhiệt.

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

Chúng tôi sẽ sử dụng bộ dữ liệu Gapminder để tạo các bản đồ nhiệt bằng cách sử dụng Seaborn.

data_url = 'http://bit.ly/2cLzoxH'
gapminder = pd.read_csv(data_url)
print(gapminder.head(3))

Đối với ví dụ đầu tiên, chúng ta hãy lọc khung dữ liệu GapMinder ban đầu để chúng ta chỉ có ba cột/biến, lục địa, năm và LifeExp.

>df1 = gapminder[['continent', 'year','lifeExp']]
>print(df1.head())
  continent  year  lifeExp
0      Asia  1952   28.801
1      Asia  1957   30.332
2      Asia  1962   31.997
3      Asia  1967   34.020
4      Asia  1972   36.088

Chúng ta hãy làm một bản đồ nhiệt cho thấy tuổi thọ của mỗi lục địa trong những năm qua. Để tạo bản đồ nhiệt đó, chúng tôi cần dữ liệu của chúng tôi làm ma trận nơi hàng là lục địa, các cột là năm và mỗi yếu tố chứa tuổi thọ của lục địa và năm cụ thể.

HeatMap với Seaborn Ví dụ 1

Nhìn nhanh vào GapMinder DataFrame của chúng tôi sẽ cho bạn biết rằng dữ liệu ở định dạng gọn gàng, tức là mỗi biến có cột riêng và mỗi quan sát có hàng riêng. Vì vậy, chúng tôi đã chuyển đổi dữ liệu thành hình thức rộng hơn để chúng tôi có thể dễ dàng tạo bản đồ nhiệt.

Chúng ta có thể sử dụng chức năng pivot_table pivot_table để truyền dữ liệu từ dạng dài sang dạng gọn gàng. Xem bài đăng trên blog trước đây để biết thêm các ví dụ về việc sử dụng chức năng pivot_table pivot_table để định hình lại dữ liệu.

Vì chúng tôi muốn định hình lại dữ liệu sao cho chúng tôi muốn lục địa là hàng và năm trên các cột, chúng tôi chỉ định các biến chỉ mục và cột cho phù hợp.

# pandas pivot
heatmap1_data = pd.pivot_table(df1, values='lifeExp', 
                     index=['continent'], 
                     columns='year')

Sau khi xoay vòng, chúng tôi có dữ liệu theo định dạng chúng tôi cần. Bây giờ, chúng ta có thể làm cho bản đồ nhiệt bằng cách sử dụng chức năng Seaborn, một cách dễ dàng. Trong ví dụ của chúng tôi ở đây, chúng tôi đã chọn một bảng màu cụ thể với đối số của CMAP.

sns.heatmap(heatmap1_data, cmap="YlGnBu")

Chúng tôi nhận được một bản đồ nhiệt đơn giản ngay lập tức làm nổi bật xu hướng trong dữ liệu với các giá trị của thang màu ở bên phải. Từ bản đồ nhiệt này, chúng ta có thể thấy rằng tuổi thọ ở Châu Phi và Châu Á đã cải thiện qua nhiều năm qua, với châu Á làm tốt hơn nhiều so với Châu Phi, v.v.

Hướng dẫn heatmap with two variables python - bản đồ nhiệt với hai biến python
Ví dụ về bản đồ nhiệt đơn giản với Seaborn

HeatMap với Seaborn Ví dụ 2

Chúng ta hãy tạo một bản đồ nhiệt khác, nhưng lần này sử dụng mỗi quốc gia có tuổi thọ. Trước tiên chúng ta hãy tập hợp lại khung dữ liệu Gapminder sao cho chúng tôi giữ cột quốc gia. Và sau đó sử dụng chức năng pivot_table của PANDAS để định hình lại dữ liệu sao cho nó ở dạng rộng và dễ dàng tạo ra bản đồ nhiệt với chức năng nhiệt của Seaborn.

df2 = gapminder[['country','continent', 'year','lifeExp']]
heatmap2_data = pd.pivot_table(df2,values='lifeExp', index=['country'], columns='year')
heatmap2_data.head(n=5)
sns.heatmap(heatmap2_data, cmap="BuGn")

Chúng ta có thể thấy rằng nhiệt của chúng ta cho thấy các giá trị kỳ vọng của đất nước qua nhiều năm. Và tự động, chức năng HeatMap của Seaborn đang sử dụng tất cả dữ liệu và nhãn của quốc gia tên của các quốc gia được chọn trên các hàng.

Hướng dẫn heatmap with two variables python - bản đồ nhiệt với hai biến python
Ví dụ về nhiệt với Seaborn

Ví dụ về nhiệt 3: Tùy chỉnh các bản đồ nhiệt với Seaborn

Thường thì chúng tôi muốn tùy chỉnh hình dung của chúng tôi để nó có nhiều thông tin và phù hợp hơn với nhu cầu của chúng tôi. Hãy cho chúng tôi xem một số ví dụ về tùy chỉnh bản đồ nhiệt với Seaborn.

Bản đồ nhiệt trước đây của chúng tôi cho thấy tất cả các quốc gia, nhưng theo một cách bị vắt kiệt. Chúng ta hãy tùy chỉnh bản đồ nhiệt để nó không bị vắt và chúng ta có thể thấy nhiều quốc gia hơn. Hãy để chúng tôi nói rằng chúng tôi muốn giữ thông tin lục địa trong bản đồ nhiệt của chúng tôi, không chỉ thông tin quốc gia. Chúng ta cũng hãy thay đổi bảng màu, để chúng ta thấy mẫu trong bản đồ nhiệt rõ ràng hơn.

Trước tiên chúng ta hãy chuẩn bị khung dữ liệu của mình để chúng tôi giữ thông tin lục địa về bản đồ nhiệt. Để làm điều đó, chúng tôi cần định hình lại khung dữ liệu Gapminder ban đầu của chúng tôi với bốn biến để hàng hoặc chỉ mục của chúng tôi có thông tin lục địa bên cạnh thông tin quốc gia. PANDAS, Pivot_Table đến giải cứu của chúng tôi và chúng tôi có thể chỉ cần chỉ định cả quốc gia và lục địa làm chỉ mục bằng cách sử dụng đối số.

df3 = gapminder[['country','continent', 'year','lifeExp']]
# pandas pivot with multiple variables
heatmap3_data = pd.pivot_table(df3,values='lifeExp', index=['continent','country'], columns='year')

Chúng ta có thể thấy rằng dữ liệu được định hình lại mới từ Pandas Pivot có hai oindices; lục địa và đất nước. Chúng ta có thể thay đổi bảng màu thành Rd Rdbu, một trong những bản đồ phân kỳ có sẵn trong Python để hiển thị sự khác biệt rõ ràng giữa các giá trị thấp và cao (về tuổi thọ). Bằng cách chỉ định kích thước của hình chúng tôi muốn tạo bằng cách sử dụng PLT.Figure, chúng tôi có thể làm cho hệ thống nhiệt cao hơn để chúng tôi thấy nhiều nhãn hơn của lục địa nước.

plt.figure(figsize=(8, 12))
sns.heatmap(heatmap3_data, cmap="RdBu")
Hướng dẫn heatmap with two variables python - bản đồ nhiệt với hai biến python
Customize Heatmap with Seaborn

Chúng ta có thể thấy rằng bây giờ chúng ta có tùy chỉnh của HeatMap chúng ta cần. Các chỉ số hàng có cả thông tin quốc gia và lục địa. Ngoài ra hình ảnh cao hơn vì vậy chúng tôi có nhiều chỉ mục hàng hơn. Bảng màu mới của chúng tôi cho thấy rõ sự khác biệt giữa các quốc gia có tuổi thọ thấp so với các quốc gia có tuổi thọ cao.

Có bao nhiêu biến trong bản đồ nhiệt?

Các bản đồ nhiệt được sử dụng để hiển thị mối quan hệ giữa hai biến, một được vẽ trên mỗi trục.two variables, one plotted on each axis.

Chúng ta có thể sử dụng HeatMap cho các biến phân loại không?

Nếu chúng ta muốn xem các biến phân loại tương tác với nhau như thế nào, các bản đồ nhiệt là một cách rất hữu ích để làm như vậy.Mặc dù bạn có thể sử dụng bản đồ nhiệt để hình dung mối quan hệ giữa bất kỳ hai biến phân loại nào, nhưng việc sử dụng các bản đồ nhiệt theo các kích thước của thời gian là khá phổ biến.heatmaps are a very useful way to do so. While you can use a heatmap to visualize the relationship between any two categorical variables, it's quite common to use heatmaps across dimensions of time.

Tôi có thể sử dụng gì thay vì bản đồ nhiệt?

Không giống như các nhà cung cấp phần mềm HeatMap thay thế như FullStory, HotJar hoặc biên độ, SmartLook cho phép người dùng xác định lại các sự kiện, phễu và nhiệt-cung cấp trí thông minh kinh doanh thời gian thực tốt hơn.FullStory, Hotjar, or Amplitude, Smartlook allows users to retroactively define events, funnels, and heatmaps — providing better real-time business intelligence.

Là một bản đồ nhiệt đa biến?

Một bản đồ nhiệt là một phương pháp trực quan hữu ích để minh họa dữ liệu đa biến khi có nhiều biến để so sánh, chẳng hạn như trong phân tích dữ liệu lớn.Đó là một biểu đồ hiển thị các giá trị theo tỷ lệ màu trong lưới. when there are many variables to compare, such as in a big data analysis. It is a plot that displays values in a color scale in a grid.