Lô đẹp trong python

Tổng hợp 50 sơ đồ matplotlib hàng đầu hữu ích nhất trong phân tích và trực quan hóa dữ liệu. Danh sách này cho phép bạn chọn hình ảnh hóa nào sẽ hiển thị cho tình huống nào bằng cách sử dụng thư viện matplotlib và seaborn của python

Giới thiệu

Các biểu đồ được nhóm lại dựa trên 7 mục đích khác nhau của mục tiêu trực quan hóa của bạn. Ví dụ: nếu bạn muốn hình dung mối quan hệ giữa 2 biến, hãy xem biểu đồ trong phần 'Tương quan'. Hoặc nếu bạn muốn hiển thị cách một giá trị thay đổi theo thời gian, hãy xem phần 'Thay đổi', v.v.

Một biểu đồ hiệu quả là một biểu đồ mà

  1. Truyền đạt thông tin đúng và cần thiết mà không bóp méo sự thật
  2. Đơn giản trong thiết kế, bạn không cần phải căng thẳng để có được nó
  3. Tính thẩm mỹ hỗ trợ thông tin hơn là làm lu mờ nó
  4. Không bị quá tải thông tin

Matplotlib được sử dụng phổ biến để trực quan hóa các ô. Hãy xem các video hướng dẫn miễn phí này để tìm hiểu cách thực hiện và

__Bài viết liên quan. __
Hướng dẫn đầy đủ về Matplotlib
Các ô con Matplotlib

nội dung

[nhấp chuột phải và mở trong trang mới nếu các liên kết không hoạt động]

tương quan

độ lệch

xếp hạng

Phân bổ

Thành phần

Biến đổi

Các nhóm

Cài đặt

Chạy cái này một lần trước mã cốt truyện. Tuy nhiên, các biểu đồ riêng lẻ có thể xác định lại tính thẩm mỹ của chính nó

Nếu bạn muốn xem video hướng dẫn về , hãy xem bài học video miễn phí này

Nhận khóa học Python hoàn chỉnh miễn phí

Đối mặt với tình huống tương tự như những người khác?

Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị

Nhận khóa học Python hoàn chỉnh miễn phí

Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị

# !pip install brewer2mpl
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import warnings; warnings.filterwarnings[action='once']

large = 22; med = 16; small = 12
params = {'axes.titlesize': large,
          'legend.fontsize': med,
          'figure.figsize': [16, 10],
          'axes.labelsize': med,
          'axes.titlesize': med,
          'xtick.labelsize': med,
          'ytick.labelsize': med,
          'figure.titlesize': large}
plt.rcParams.update[params]
plt.style.use['seaborn-whitegrid']
sns.set_style["white"]
%matplotlib inline

# Version
print[mpl.__version__]  #> 3.0.0
print[sns.__version__]  #> 0.9.0

tương quan

Các biểu đồ tương quan được sử dụng để trực quan hóa mối quan hệ giữa 2 hoặc nhiều biến. Đó là, một biến thay đổi như thế nào đối với một biến khác

1. âm mưu phân tán

Biểu đồ phân tán là một biểu đồ cổ điển và cơ bản được sử dụng để nghiên cứu mối quan hệ giữa hai biến. Nếu bạn có nhiều nhóm trong dữ liệu của mình, bạn có thể muốn trực quan hóa từng nhóm bằng một màu khác. Trong

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
7, bạn có thể thực hiện việc này một cách thuận tiện bằng cách sử dụng
# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
8

Hiển thị mã

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    

2. Âm mưu bong bóng với Encircling

Đôi khi bạn muốn hiển thị một nhóm điểm trong ranh giới để nhấn mạnh tầm quan trọng của chúng. Trong ví dụ này, bạn lấy các bản ghi từ khung dữ liệu cần được bao quanh và chuyển nó tới

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
9 được mô tả trong mã bên dưới

Hiển thị mã

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    

3. Biểu đồ phân tán với đường hồi quy tuyến tính phù hợp nhất

Nếu bạn muốn hiểu hai biến thay đổi như thế nào đối với nhau, thì đường phù hợp nhất là cách để đi. Biểu đồ dưới đây cho thấy dòng phù hợp nhất khác nhau như thế nào giữa các nhóm khác nhau trong dữ liệu. Để vô hiệu hóa các nhóm và chỉ vẽ một dòng phù hợp nhất cho toàn bộ tập dữ liệu, hãy xóa tham số

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_counts = df.groupby[['hwy', 'cty']].size[].reset_index[name='counts']

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax]

# Decorations
plt.title['Counts Plot - Size of circle is bigger as more points overlap', fontsize=22]
plt.show[]
0 khỏi lệnh gọi
# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_counts = df.groupby[['hwy', 'cty']].size[].reset_index[name='counts']

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax]

# Decorations
plt.title['Counts Plot - Size of circle is bigger as more points overlap', fontsize=22]
plt.show[]
1 bên dưới

Hiển thị mã

________số 8

Mỗi đường hồi quy trong cột riêng của nó

Ngoài ra, bạn có thể hiển thị dòng phù hợp nhất cho từng nhóm trong cột riêng của mình. Bạn có thể làm điều này bằng cách đặt tham số ________ 62 bên trong ________ 61

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
1

4. Jittering với thoát y

Thường thì nhiều điểm dữ liệu có các giá trị X và Y giống hệt nhau. Kết quả là, nhiều điểm được vẽ chồng lên nhau và ẩn. Để tránh điều này, hãy rung nhẹ các điểm để bạn có thể nhìn thấy chúng một cách trực quan. Điều này thuận tiện khi sử dụng

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_counts = df.groupby[['hwy', 'cty']].size[].reset_index[name='counts']

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax]

# Decorations
plt.title['Counts Plot - Size of circle is bigger as more points overlap', fontsize=22]
plt.show[]
4 của seaborn

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]

5. âm mưu đếm

Một tùy chọn khác để tránh vấn đề trùng lặp điểm là tăng kích thước của dấu chấm tùy thuộc vào số lượng điểm nằm trong điểm đó. Vì vậy, kích thước của điểm càng lớn thì nồng độ của các điểm xung quanh điểm đó càng lớn

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_counts = df.groupby[['hwy', 'cty']].size[].reset_index[name='counts']

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax]

# Decorations
plt.title['Counts Plot - Size of circle is bigger as more points overlap', fontsize=22]
plt.show[]

6. Biểu đồ cận biên

Biểu đồ biên có biểu đồ dọc theo các biến trục X và Y. Điều này được sử dụng để trực quan hóa mối quan hệ giữa X và Y cùng với phân phối đơn biến của X và Y riêng lẻ. Biểu đồ này thường được sử dụng trong phân tích dữ liệu khám phá [EDA]

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
5

7. Boxplot cận biên

Boxplot biên phục vụ một mục đích tương tự như biểu đồ biên. Tuy nhiên, boxplot giúp xác định trung vị, phân vị thứ 25 và 75 của X và Y

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
6

8. biểu đồ tương quan

Biểu đồ tương quan được sử dụng để xem trực quan số liệu tương quan giữa tất cả các cặp biến số có thể có trong một khung dữ liệu nhất định [hoặc mảng 2D]

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
7

9. Lô theo cặp

Biểu đồ theo cặp được yêu thích trong phân tích khám phá để hiểu mối quan hệ giữa tất cả các cặp biến số có thể có. Nó là một công cụ phải có để phân tích hai biến

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
0

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
1

độ lệch

10. thanh phân kỳ

Nếu bạn muốn xem các mục thay đổi như thế nào dựa trên một số liệu duy nhất và trực quan hóa thứ tự cũng như số lượng của phương sai này, thì các thanh phân kỳ là một công cụ tuyệt vời. Nó giúp nhanh chóng phân biệt hiệu suất của các nhóm trong dữ liệu của bạn và khá trực quan và truyền đạt quan điểm ngay lập tức

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
2

11. Văn bản phân kỳ

Các văn bản phân kỳ tương tự như các thanh phân kỳ và nó được ưu tiên nếu bạn muốn hiển thị giá trị của từng mục trong biểu đồ theo cách đẹp mắt và dễ nhìn

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
3

12. Biểu đồ chấm phân kỳ

Biểu đồ chấm phân kỳ cũng tương tự như các thanh phân kỳ. Tuy nhiên, so với các thanh phân kỳ, việc không có các thanh làm giảm mức độ tương phản và chênh lệch giữa các nhóm

Hiển thị mã

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
4

13. Biểu đồ Lollipop phân kỳ với các điểm đánh dấu

Lollipop với các điểm đánh dấu cung cấp một cách linh hoạt để trực quan hóa sự phân kỳ bằng cách nhấn mạnh vào bất kỳ điểm dữ liệu quan trọng nào bạn muốn thu hút sự chú ý và đưa ra lý do phù hợp trong biểu đồ

Hiển thị mã

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
5

14. Biểu đồ khu vực

Bằng cách tô màu khu vực giữa trục và các đường, biểu đồ vùng nhấn mạnh hơn không chỉ vào các đỉnh và đáy mà còn cả khoảng thời gian của các đỉnh và đáy. Thời lượng của các mức cao càng dài, diện tích dưới đường càng lớn

Hiển thị mã

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
6

xếp hạng

15. Biểu đồ thanh có thứ tự

Biểu đồ thanh có thứ tự truyền đạt thứ tự xếp hạng của các mục một cách hiệu quả. Nhưng khi thêm giá trị của số liệu phía trên biểu đồ, người dùng sẽ nhận được thông tin chính xác từ chính biểu đồ đó. Đó là một cách cổ điển để trực quan hóa các mục dựa trên số lượng hoặc bất kỳ số liệu cụ thể nào. Kiểm tra video hướng dẫn miễn phí này trên

Hiển thị mã

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
7

16. Bảng xếp hạng Lollipop

Biểu đồ Lollipop phục vụ mục đích tương tự như biểu đồ thanh được sắp xếp theo cách trực quan dễ chịu

Hiển thị mã

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
8

17. Châm điểm

Biểu đồ dấu chấm truyền tải thứ tự xếp hạng của các mục. Và vì nó được căn dọc theo trục hoành, bạn có thể hình dung các điểm cách nhau bao xa dễ dàng hơn

# Import dataset 
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# Prepare Data 
# Create as many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Draw Plot for Each Category
plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=colors[i], label=str[category]]

# Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Scatterplot of Midwest Area vs Population", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
9

18. Biểu đồ độ dốc

Biểu đồ độ dốc phù hợp nhất để so sánh vị trí 'Trước' và 'Sau' của một người/vật cụ thể

Hiển thị mã

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
0

19. Âm mưu quả tạ

Biểu đồ quả tạ truyền đạt vị trí 'trước' và 'sau' của các vật phẩm khác nhau cùng với thứ tự xếp hạng của các vật phẩm. Nó rất hữu ích nếu bạn muốn hình dung tác động của một dự án/sáng kiến ​​cụ thể đối với các đối tượng khác nhau

Hiển thị mã

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
1

Phân bổ

20. Biểu đồ cho biến liên tục

Biểu đồ hiển thị phân phối tần số của một biến nhất định. Biểu diễn bên dưới nhóm các thanh tần số dựa trên một biến phân loại giúp hiểu rõ hơn về biến liên tục và biến phân loại song song. trong video hướng dẫn miễn phí này

Hiển thị mã

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
2

21. Biểu đồ cho biến phân loại

Biểu đồ của một biến phân loại cho thấy phân phối tần số của một biến đó. Bằng cách tô màu các thanh, bạn có thể trực quan hóa phân phối liên quan đến một biến phân loại khác đại diện cho màu sắc

Hiển thị mã

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
3

22. Biểu đồ mật độ

Biểu đồ mật độ là một công cụ thường được sử dụng trực quan hóa phân phối của một biến liên tục. Bằng cách nhóm chúng theo biến 'phản hồi', bạn có thể kiểm tra mối quan hệ giữa X và Y. Trường hợp dưới đây nếu nhằm mục đích đại diện để mô tả cách phân bổ số dặm trong thành phố thay đổi theo số lượng xi lanh

Hiển thị mã

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
4

s

23. Đường cong mật độ với Biểu đồ

Đường cong mật độ với biểu đồ tập hợp thông tin chung được truyền tải bởi hai biểu đồ để bạn có thể có cả hai biểu đồ trong một hình duy nhất thay vì hai biểu đồ

Hiển thị mã

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
5

24. âm mưu niềm vui

Joy Plot cho phép các đường cong mật độ của các nhóm khác nhau chồng lên nhau, đây là một cách tuyệt vời để hình dung sự phân bố của một số lượng lớn các nhóm trong mối quan hệ với nhau. Nó trông đẹp mắt và truyền tải đúng thông tin một cách rõ ràng. Nó có thể được xây dựng dễ dàng bằng cách sử dụng gói

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_counts = df.groupby[['hwy', 'cty']].size[].reset_index[name='counts']

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax]

# Decorations
plt.title['Counts Plot - Size of circle is bigger as more points overlap', fontsize=22]
plt.show[]
5 dựa trên
# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
7

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
6

25. Biểu đồ điểm phân tán

Biểu đồ chấm phân tán hiển thị phân phối đơn biến của các điểm được phân đoạn theo nhóm. Các điểm càng tối thì mức độ tập trung của các điểm dữ liệu trong vùng đó càng nhiều. Bằng cách tô màu trung bình khác nhau, vị trí thực sự của các nhóm trở nên rõ ràng ngay lập tức

Hiển thị mã

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
7

26. Lô hộp

Biểu đồ hộp là một cách tuyệt vời để trực quan hóa phân phối, lưu ý đến phần tư trung bình, phần tư thứ 25 thứ 75 và các giá trị ngoại lai. Tuy nhiên, bạn cần cẩn thận trong việc giải thích kích thước của các hộp có khả năng làm sai lệch số lượng điểm có trong nhóm đó. Vì vậy, việc cung cấp thủ công số lượng quan sát trong mỗi hộp có thể giúp khắc phục nhược điểm này. Kiểm tra điều này

Ví dụ: hai hộp đầu tiên bên trái có các hộp có cùng kích thước mặc dù chúng có 5 và 47 obs tương ứng. Vì vậy, việc viết số lượng quan sát trong nhóm đó trở nên cần thiết

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
8

27. Dấu chấm + ô vuông

Dấu chấm + Biểu đồ hộp Truyền tải thông tin tương tự như biểu đồ hộp được chia theo nhóm. Ngoài ra, các dấu chấm còn cho biết có bao nhiêu điểm dữ liệu nằm trong mỗi nhóm

from matplotlib import patches
from scipy.spatial import ConvexHull
import warnings; warnings.simplefilter['ignore']
sns.set_style["white"]

# Step 1: Prepare Data
midwest = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv"]

# As many colors as there are unique midwest['category']
categories = np.unique[midwest['category']]
colors = [plt.cm.tab10[i/float[len[categories]-1]] for i in range[len[categories]]]

# Step 2: Draw Scatterplot with unique color for each category
fig = plt.figure[figsize=[16, 10], dpi= 80, facecolor='w', edgecolor='k']    

for i, category in enumerate[categories]:
    plt.scatter['area', 'poptotal', data=midwest.loc[midwest.category==category, :], s='dot_size', c=colors[i], label=str[category], edgecolors='black', linewidths=.5]

# Step 3: Encircling
# //stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot
def encircle[x,y, ax=None, **kw]:
    if not ax: ax=plt.gca[]
    p = np.c_[x,y]
    hull = ConvexHull[p]
    poly = plt.Polygon[p[hull.vertices,:], **kw]
    ax.add_patch[poly]

# Select data to be encircled
midwest_encircle_data = midwest.loc[midwest.state=='IN', :]                         

# Draw polygon surrounding vertices    
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1]
encircle[midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5]

# Step 4: Decorations
plt.gca[].set[xlim=[0.0, 0.1], ylim=[0, 90000],
              xlabel='Area', ylabel='Population']

plt.xticks[fontsize=12]; plt.yticks[fontsize=12]
plt.title["Bubble Plot with Encircling", fontsize=22]
plt.legend[fontsize=12]    
plt.show[]    
9

28. Âm mưu vĩ cầm

Cốt truyện violin là một sự thay thế trực quan dễ chịu cho các ô hộp. Hình dạng hoặc diện tích của đàn violon phụ thuộc vào số lượng quan sát mà nó nắm giữ. Tuy nhiên, các ô vĩ cầm có thể khó đọc hơn và nó không được sử dụng phổ biến trong môi trường chuyên nghiệp. Video hướng dẫn miễn phí bằng tiếng Thái sẽ đào tạo bạn

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
0

29. Kim tự tháp dân số

Tháp dân số có thể được sử dụng để chỉ ra sự phân bố của các nhóm được sắp xếp theo khối lượng. Hoặc nó cũng có thể được sử dụng để hiển thị quá trình lọc dân số theo từng giai đoạn như được sử dụng dưới đây để cho biết có bao nhiêu người đi qua từng giai đoạn của phễu tiếp thị

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
1

30. lô phân loại

Biểu đồ phân loại do thư viện

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_counts = df.groupby[['hwy', 'cty']].size[].reset_index[name='counts']

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax]

# Decorations
plt.title['Counts Plot - Size of circle is bigger as more points overlap', fontsize=22]
plt.show[]
7 cung cấp có thể được sử dụng để trực quan hóa phân phối số đếm của 2 hoặc nhiều biến phân loại hơn trong mối quan hệ với nhau

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
2

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
3

Thành phần

31. Biểu đồ bánh quế

Biểu đồ

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_counts = df.groupby[['hwy', 'cty']].size[].reset_index[name='counts']

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax]

# Decorations
plt.title['Counts Plot - Size of circle is bigger as more points overlap', fontsize=22]
plt.show[]
8 có thể được tạo bằng gói
# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_counts = df.groupby[['hwy', 'cty']].size[].reset_index[name='counts']

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax]

# Decorations
plt.title['Counts Plot - Size of circle is bigger as more points overlap', fontsize=22]
plt.show[]
9 và được sử dụng để hiển thị thành phần của các nhóm trong một quần thể lớn hơn

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
4

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
5

32. Biểu đồ tròn

Biểu đồ hình tròn là một cách cổ điển để hiển thị thành phần của các nhóm. Tuy nhiên, ngày nay nó không được khuyến khích sử dụng vì diện tích của các phần bánh đôi khi có thể bị sai lệch. Vì vậy, nếu bạn định sử dụng biểu đồ hình tròn, bạn nên viết rõ ràng tỷ lệ phần trăm hoặc số cho từng phần của hình tròn

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
6

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
7

33. sơ đồ cây

Bản đồ cây tương tự như biểu đồ hình tròn và nó hoạt động tốt hơn mà không làm sai lệch đóng góp của từng nhóm

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
8

34. Biểu đồ cột

Biểu đồ thanh là một cách cổ điển để hình dung các mục dựa trên số lượng hoặc bất kỳ số liệu cụ thể nào. Trong biểu đồ bên dưới, tôi đã sử dụng một màu khác cho từng mục, nhưng thông thường bạn có thể muốn chọn một màu cho tất cả các mục trừ khi bạn tô màu chúng theo nhóm. Tên màu được lưu trữ bên trong

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
50 trong mã bên dưới. Bạn có thể thay đổi màu của các thanh bằng cách đặt tham số
# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
51 trong
# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
52

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]
df_select = df.loc[df.cyl.isin[[4,8]], :]

# Plot
sns.set_style["white"]
gridobj = sns.lmplot[x="displ", y="hwy", hue="cyl", data=df_select, 
                     height=7, aspect=1.6, robust=True, palette='tab10', 
                     scatter_kws=dict[s=60, linewidths=.7, edgecolors='black']]

# Decorations
gridobj.set[xlim=[0.5, 7.5], ylim=[0, 50]]
plt.title["Scatterplot with line of best fit grouped by number of cylinders", fontsize=20]
plt.show[]
9

Biến đổi

35. Cốt truyện chuỗi thời gian

Biểu đồ chuỗi thời gian được sử dụng để trực quan hóa cách một số liệu nhất định thay đổi theo thời gian. Tại đây bạn có thể thấy lưu lượng Hành khách Hàng không đã thay đổi như thế nào giữa năm 1949 và 1969. Kiểm tra video hướng dẫn miễn phí này để phân tích chuỗi thời gian

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
10

36. Chuỗi thời gian với các đỉnh và đáy được chú thích

Chuỗi thời gian dưới đây biểu thị tất cả các đỉnh và đáy và chú thích sự xuất hiện của các sự kiện đặc biệt đã chọn

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
11

37. Đồ thị tự tương quan [ACF] và tự tương quan một phần [PACF]

Biểu đồ ACF cho thấy mối tương quan của chuỗi thời gian với độ trễ của chính nó. Mỗi đường thẳng đứng [trên biểu đồ tự tương quan] biểu thị mối tương quan giữa chuỗi và độ trễ của nó bắt đầu từ độ trễ 0. Vùng bóng mờ màu xanh lam trong cốt truyện là mức ý nghĩa. Những độ trễ nằm trên đường màu xanh là độ trễ đáng kể

Vậy làm thế nào để giải thích điều này?

Đối với AirPassengers, chúng tôi thấy có tới 14 độ trễ đã vượt qua đường màu xanh lam và điều này rất đáng kể. Điều này có nghĩa là, lưu lượng Hành khách Hàng không được thấy cho đến 14 năm trước có ảnh hưởng đến lưu lượng được thấy ngày nay

Mặt khác, PACF đã cho thấy sự tự tương quan của bất kỳ độ trễ nhất định nào [của chuỗi thời gian] so với chuỗi hiện tại, nhưng với sự đóng góp của độ trễ ở giữa đã bị loại bỏ

Ghi chú. Nếu bạn muốn, hãy xem video hướng dẫn miễn phí này

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
12

38. Biểu đồ tương quan chéo

Biểu đồ tương quan chéo cho thấy độ trễ của hai chuỗi thời gian với nhau

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
13

39. Biểu đồ phân tách chuỗi thời gian

Biểu đồ phân tách chuỗi thời gian cho thấy sự phân chia chuỗi thời gian thành các thành phần xu hướng, theo mùa và phần còn lại

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
14

40. Nhiều chuỗi thời gian

Bạn có thể vẽ nhiều chuỗi thời gian đo lường cùng một giá trị trên cùng một biểu đồ như hình bên dưới

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
15

41. Vẽ đồ thị với các tỷ lệ khác nhau bằng trục Y thứ cấp

Nếu bạn muốn hiển thị hai chuỗi thời gian đo hai đại lượng khác nhau tại cùng một thời điểm, bạn có thể vẽ lại chuỗi thứ hai trên trục Y phụ ở bên phải

Học cách vẽ bằng video hướng dẫn miễn phí này

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
16

42. Chuỗi thời gian có dải lỗi

Chuỗi thời gian với các dải lỗi có thể được tạo nếu bạn có tập dữ liệu chuỗi thời gian với nhiều quan sát cho từng điểm thời gian [ngày/dấu thời gian]. Dưới đây bạn có thể xem một vài ví dụ dựa trên các đơn đặt hàng đến vào các thời điểm khác nhau trong ngày. Và một ví dụ khác về số lượng đơn đặt hàng đến trong khoảng thời gian 45 ngày

Theo cách tiếp cận này, giá trị trung bình của số lượng đơn đặt hàng được biểu thị bằng đường trắng. Và một dải tin cậy 95% được tính toán và vẽ xung quanh giá trị trung bình

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
17

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
18

43. Biểu đồ vùng xếp chồng lên nhau

Biểu đồ vùng xếp chồng cung cấp biểu diễn trực quan về mức độ đóng góp từ nhiều chuỗi thời gian để dễ dàng so sánh với nhau

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
19

44. Biểu đồ khu vực không được xếp chồng lên nhau

Biểu đồ vùng không xếp chồng được sử dụng để trực quan hóa tiến trình [lên và xuống] của hai hoặc nhiều chuỗi đối với nhau. Trong biểu đồ bên dưới, bạn có thể thấy rõ tỷ lệ tiết kiệm cá nhân giảm như thế nào khi thời gian thất nghiệp trung bình tăng lên. Biểu đồ khu vực chưa được xếp chồng đưa ra hiện tượng này một cách độc đáo

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
0

45. Bản đồ nhiệt lịch

Bản đồ lịch là một tùy chọn thay thế và ít được ưu tiên hơn để trực quan hóa dữ liệu dựa trên thời gian so với chuỗi thời gian. Mặc dù có thể hấp dẫn trực quan, nhưng các giá trị số không hoàn toàn rõ ràng. Tuy nhiên, nó hiệu quả trong việc hình dung độc đáo các giá trị cực đoan và hiệu ứng kỳ nghỉ.

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
1

46. Cốt truyện theo mùa

Cốt truyện theo mùa có thể được sử dụng để so sánh chuỗi thời gian được thực hiện như thế nào vào cùng một ngày trong mùa trước [năm/tháng/tuần, v.v.]

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
2

Các nhóm

47. chương trình dendro

Một Dendrogram nhóm các điểm tương tự lại với nhau dựa trên một số liệu khoảng cách nhất định và sắp xếp chúng theo dạng cây giống như các liên kết dựa trên sự giống nhau của điểm

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
3

48. Lô cụm

Biểu đồ cụm có thể được sử dụng để phân định các điểm thuộc cùng một cụm. Dưới đây là một ví dụ đại diện để nhóm các bang của Hoa Kỳ thành 5 nhóm dựa trên bộ dữ liệu USArrests. Biểu đồ cụm này sử dụng các cột 'giết người' và 'tấn công' làm trục X và Y. Ngoài ra, bạn có thể sử dụng thành phần đầu tiên cho thành phần chính làm trục X và Y

Hiển thị mã

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
4

49. Đường cong Andrews

Andrews Curve giúp hình dung nếu có các nhóm vốn có của các tính năng số dựa trên một nhóm nhất định. Nếu các tính năng [cột trong tập dữ liệu] không giúp phân biệt nhóm [

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
53, thì các dòng sẽ không được phân tách rõ ràng như bạn thấy bên dưới

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
5

50. Tọa độ song song

Các tọa độ song song giúp hình dung nếu một tính năng giúp tách biệt các nhóm một cách hiệu quả. Nếu một sự phân biệt được thực hiện, tính năng đó có thể sẽ rất hữu ích trong việc dự đoán nhóm đó

# Import Data
df = pd.read_csv["//raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv"]

# Draw Stripplot
fig, ax = plt.subplots[figsize=[16,10], dpi= 80]    
sns.stripplot[df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5]

# Decorations
plt.title['Use jittered plots to avoid overlapping of points', fontsize=22]
plt.show[]
6

Đó là tất cả cho bây giờ. Nếu bạn gặp một số lỗi hoặc lỗi, vui lòng thông báo tại đây

Selva Prabhakaran

Selva là Tác giả chính và Biên tập viên của Machine Learning Plus, với hơn 4 triệu độc giả. Anh ấy là tác giả của các khóa học và sách với hơn 100 nghìn sinh viên và là Nhà khoa học dữ liệu chính của một công ty toàn cầu

Chủ Đề