Trực quan hóa bản đồ thế giới bằng python

Trực quan hóa hiểu một cách đơn giản là hình ảnh hóa dựa trên dữ liệu. Ý niệm của hình ảnh hóa rất ngắn gọn nhưng trên thực tế hình ảnh hóa lại là một mảng rất rộng và có thể coi là một lĩnh vực kết hợp của khoa học và nghệ thuật bởi nó phù hợp với quan đến đồ họa [sử dụng hình ảnh học để diễn tả . Nhờ có trực quan, chúng ta có thể dễ dàng đưa ra các so sánh trực quan, tính toán tỷ trọng, nhận biết xu hướng, phát hiện ngoại lệ, nhận diện đặc điểm phân phối của biến tốt hơn. Từ đó hỗ trợ quá trình khóa thông tin và đưa ra quyết định tốt hơn. Trong các kỹ năng của nhà khoa học dữ liệu, trực quan hóa là một trong những kỹ năng cơ bản và quan trọng nhất. Thế nhưng nhiều nhà khoa học dữ liệu lại chưa nhận diện được điều này và thường xem nhẹ vai trò của trực quan hóa. Trước đây tôi cũng đã từng mắc sai lầm như vậy. Qua kinh nghiệm nhiều năm xây dựng mô hình và phân tích kinh doanh đã giúp tôi nhìn nhận lại vai trò của trực quan hóa. Chính vì thế tôi quyết định tổng hợp bài viết này theo cách bao quát và sơ đẳng nhất về trực quan hóa trên python như một tài liệu sử dụng khi cần thiết và đồng thời cũng là cách củng cố lại kiến ​​thức

Việc liên quan đến trực quan hóa chúng ta không thể nói đến một số dạng biểu thức cơ bản như. hàng, biểu đồ, bánh, khu vực, boxplot

in which

  • hàng. Là biểu đồ đường kết nối các điểm thành 1 đường liền kề
  • biểu đồ cột. Biểu tượng giá trị của các nhóm dưới dạng cột
  • bánh. Biểu đồ hình tròn biểu diễn phần trăm của các nhóm
  • diện tích. Biểu đồ biểu diễn phân tích của các đường
  • ô vuông. Biểu đồ biểu diễn các giá trị thống kê của một biến trên bao gồm các bản đồ thị. Trung bình, Max, Min, ngưỡng phần trăm gạch 25%, 50%, 75%

Sau đây chúng ta sẽ học cách sử dụng các dạng biểu đồ này trên matplotlib

1. 1. Dòng biểu đồ

Biểu đồ dòng là biểu đồ biểu diễn các giá trị dưới dạng các đường. Trên matplotlib. Line được vẽ thông qua

# Đường nét đứt có gạch nối
plt.plot[df['Close'].tail[100], linestyle = '-.']
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
2. Sau đây, chúng ta cùng biểu diễn giá chứng khoán thông qua biểu đồ dòng

Lấy chứng từ chứng khoán của apple

1
2
3
4
5
6
7
8
9
10
11
12
13
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
. 860001115. 809998115. 919998116. 61000122193600. 0111. 7277152017-01-06118. 160004116. 470001116. 779999117. 91000431751900. 0112. 9733052017-01-09119. 430000117. 940002117. 949997118. 98999833561900. 0114. 0080802017-01-10119. 379997118. 300003118. 769997119. 11000124462100. 0114. 1230472017-01-11119. 930000118. 599998118. 739998119. 75000027588600. 0114. 736275

Biểu tượng chứng khoán biểu diễn dưới dạng biểu đồ dòng

1
2
3
4
plt.plot[df['Close'].tail[100]]
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']

Thay đổi định dạng dòng

Nếu muốn thay đổi định dạng của dòng, chúng ta sẽ sử dụng thêm 1 tham số khác là

# Đường nét đứt có gạch nối
plt.plot[df['Close'].tail[100], linestyle = '-.']
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
3. Một số kiểu đường thông dụng. {‘-‘, ‘–’, ‘-. ’, ‘. ’, ‘’}

  • # Đường nét đứt có gạch nối
    plt.plot[df['Close'].tail[100], linestyle = '-.']
    plt.ylabel['Gía chứng khoán']
    plt.xlabel['Thời gian']
    plt.title['Gía chứng khoán APPLE']
    
    4. Instant Line
  • # Đường nét đứt có gạch nối
    plt.plot[df['Close'].tail[100], linestyle = '-.']
    plt.ylabel['Gía chứng khoán']
    plt.xlabel['Thời gian']
    plt.title['Gía chứng khoán APPLE']
    
    5. Dài đường nét
  • # Đường nét đứt có gạch nối
    plt.plot[df['Close'].tail[100], linestyle = '-.']
    plt.ylabel['Gía chứng khoán']
    plt.xlabel['Thời gian']
    plt.title['Gía chứng khoán APPLE']
    
    6. Con trỏ line line kết hợp với dấu chấm
  • # Đường nét đứt có gạch nối
    plt.plot[df['Close'].tail[100], linestyle = '-.']
    plt.ylabel['Gía chứng khoán']
    plt.xlabel['Thời gian']
    plt.title['Gía chứng khoán APPLE']
    
    7. Đường bao gồm các dấu chấm

Hạn chế để thay đổi dòng từ một đường nét liền kề sang trọng

1
2
3
4
1
2
3
4
5
6
7
8
9
10
11
12
13
1

Kết hợp line và point

Bên cạnh dòng chúng ta còn có thể đánh dấu các điểm bằng các điểm. Dạng của điểm có thể là hình tròn, hình vuông hoặc tam giác và được khai báo thông qua tham số

# Đường nét đứt có gạch nối
plt.plot[df['Close'].tail[100], linestyle = '-.']
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
8. Giá trị của điểm đánh dấu sẽ tương ứng như sau

  • # Đường nét đứt có gạch nối
    plt.plot[df['Close'].tail[100], linestyle = '-.']
    plt.ylabel['Gía chứng khoán']
    plt.xlabel['Thời gian']
    plt.title['Gía chứng khoán APPLE']
    
    9. Hình tam giác
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    20. Hình tròn
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    21. Hình vuông [tức là hình vuông]

Bên dưới là một số kết hợp của linstyle và điểm đánh dấu

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
2
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
3

Hoặc chúng ta cũng có thể vẽ biểu đồ dòng từ pandas dataframe

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
2
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
7

1. 2. Barchart chart

Biểu đồ barchart là dạng biểu đồ có thể coi là biến phổ biến nhất và được sử dụng chủ yếu trong trường hợp để so sánh giá trị giữa các nhóm thông qua cột dài. Để biểu diễn biểu đồ barchart trong python chúng ta sử dụng hàm

1
2
3
4
5
6
7
8
9
10
11
12
13
22. Các tham số truyền vào bao gồm tên các nhóm [tham số
1
2
3
4
5
6
7
8
9
10
11
12
13
23] và giá trị của các nhóm [tham số
1
2
3
4
5
6
7
8
9
10
11
12
13
24]

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
8
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
9

Thay đổi màu sắc của các nhóm

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
8
1
2
3
4
1

Thêm nhãn giá trị cho các cột bằng tham số plt. chữ[]. Trong đó tham số _______ 123 và ______ 126 của _______ 127 quy định thời điểm bắt đầu của hình chữ nhật chứa tên của nhóm.

1
2
3
4
5
6
7
8
9
10
11
12
13
21 bao gồm tên nhãn của nhóm và
1
2
3
4
5
6
7
8
9
10
11
12
13
29 quy định kích thước của văn bản

1
2
3
4
2
1
2
3
4
3

Chúng ta cũng có thể vẽ biểu đồ của 2 biến trở thành các barchart liền kề nhau

1
2
3
4
4
1
2
3
4
5

Ta cũng có thể biểu diễn biểu tượng thông tin qua khung dữ liệu

1
2
3
4
6
1
2
3
4
7

1. 3. Round map

Biểu đồ tròn được sử dụng để hình dung Tỷ lệ phần trăm của các lớp. Ưu điểm của biểu đồ này là dễ dàng hình dung được đánh giá cao % mà các lớp này đóng góp vào tổng số. Nhưng nhược điểm là không thể hiện các đối số tuyệt vời

Để tạo biểu tượng tròn trong matplotlib

1
2
3
4
8
1
2
3
4
9

1. 4. boxplot map

Boxplot chart sẽ cho ta biết các đặc trưng về phân phối của 1 biến dựa trên các giá trị trung bình, min, max, các khoảng phân chia 25%, 50%, 75%. Đây là biểu đồ được sử dụng nhiều trong chứng khoán và thống kê học để so sánh các biến với nhau

plt.plot[df['Close'].tail[100]]
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
0
plt.plot[df['Close'].tail[100]]
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
1

1. 5. Vẽ biểu tượng trên khung dữ liệu

Định dạng khung dữ liệu của pandas không chỉ hỗ trợ các truy vấn và hệ thống dữ liệu thống kê có cấu trúc nhanh hơn mà còn hỗ trợ vẽ biểu đồ dưới dạng matplotlib-based. Sau đây chúng ta cùng sử dụng dataframe để vẽ các đồ thị cơ bản

Để tìm hiểu kỹ hơn về thống kê và vẽ biểu đồ trên dataframe các bạn có thể tham khảo bài giới thiệu pandas

1
2
3
4
5
6
7
8
9
10
11
12
13
plt.plot[df['Close'].tail[100]]
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
3 . 610001120. 669998813. 02002062. 2999992017-01-06117. 910004123. 410004825. 21002262. 8400002017-01-09118. 989998124. 900002827. 17999362. 6399992017-01-10119. 110001124. 349998826. 01001062. 6199992017-01-11119. 750000126. 089996829. 85998563. 189999

Dòng biểu đồ

Biểu đồ đường kết hợp điểm

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
2
plt.plot[df['Close'].tail[100]]
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
5

Barchart chart

Round map

1
2
3
4
6
plt.plot[df['Close'].tail[100]]
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
7

Biểu đồ phân tích

Khu vực có diện tích càng lớn thì chênh lệch chênh lệch về giá theo thời gian của nó càng lớn và các vùng có diện tích nhỏ hơn đối với những kẻ giết mã chứng khoán ít có sự chênh lệch về giá theo thời gian

1. 6. Heatmap chart

Bản đồ nhiệt là biểu tượng sử dụng cường độ màu sắc để thể hiện mức độ lớn của giá trị. Khi đó các giá trị lớn sẽ được làm nổi bằng các vùng màu có cường độ ánh sáng mạnh và các giá trị nhỏ hơn sẽ được thể hiện bằng các mảng màu nhạt hơn. Các trường hợp thường sử dụng bản đồ nhiệt

  • Biểu đồ tương quan số
  • Biểu đồ địa lý về cảnh báo thiên tai
  • dia chi icon
  • Biểu đồ crazy egg trong đo lường các thành phần được sử dụng nhiều trong 1 website hoặc ứng dụng. …

Trong ứng dụng học máy lớn nhất của bản đồ nhiệt có thể hiển thị các giá trị của hệ thống số tương đối. Ta sẽ cùng tìm hiểu cách vẽ biểu đồ nhiệt biểu tượng hệ số tương quan

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
8
plt.plot[df['Close'].tail[100]]
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
9 . 0000000. 7077440. 7950630. 820183FB0. 7077441. 0000000. 9547930. 958231GOOGL0. 7950630. 9547931. 0000000. 960193MSFT0. 8201830. 9582310. 9601931. 000000

Để vẽ biểu đồ nhiệt, chúng ta có thể sử dụng hàm số

1
2
3
4
5
6
7
8
9
10
11
12
13
50 như bên dưới

1
2
3
4
0
1
2
3
4
1

Hàm số sẽ có tác dụng thiết lập các bảng nhiệt và nhãn của trục x, y trên đồ thị

1
2
3
4
1
2
3
4
3

Chúng ta sẽ thêm tiêu đề giá trị các biến nằm trong

1
2
3
4
5
6
7
8
9
10
11
12
13
51 vào ô giá trị tương ứng thông qua hàm số
1
2
3
4
5
6
7
8
9
10
11
12
13
52

1
2
3
4
0
1
2
3
4
5

Hoặc ta có thể hình dung biểu đồ nhiệt thông qua gói

1
2
3
4
5
6
7
8
9
10
11
12
13
53

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
8
1
2
3
4
9

2. Các biểu tượng biểu tượng phân phối

2. 1. biểu đồ mật độ

Mỗi bộ dữ liệu đều có một biểu tượng riêng của nó. Để mô hình hóa những đặc trưng này, thống kê học sử dụng mô tả thống kê như tính trung bình, tối đa, trung vị, độ lệch chuẩn, phần trăm. Để tính toán mô tả thống kê cho một tập dữ liệu dưới dạng pandas dataframe trong python đơn giản ta sử dụng hàm

1
2
3
4
5
6
7
8
9
10
11
12
13
54

plt.plot[df['Close'].tail[100]]
plt.ylabel['Gía chứng khoán']
plt.xlabel['Thời gian']
plt.title['Gía chứng khoán APPLE']
0
1
2
3
4
5
6
7
8
9
10
11
12
13
11 . 000000150. 000000150. 000000150. 000000150. 000000mean5. 8433333. 0573333. 7580001. 1993331. 000000std0. 8280660. 4358661. 7652980. 7622380. 819232min4. 3000002. 0000001. 0000000. 1000000. 00000025%5. 1000002. 8000001. 6000000. 3000000. 00000050%5. 8000003. 0000004. 3500001. 3000001. 00000075%6. 4000003. 3000005. 1000001. 8000002. 000000max7. 9000004. 4000006. 9000002. 5000002. 000000

Tuy nhiên, không phải lúc nào hệ thống mô tả là duy nhất đối với một bộ dữ liệu. Một ví dụ về phân phối cấu hình

1
2
3
4
5
6
7
8
9
10
11
12
13
55

Hình 1. Đồ thị hình chú khủng long và các hình bên dưới có hình dạng hoàn toàn khác biệt nhưng đều dựa trên 2 chuỗi $X, Y$ có chung hệ thống thống kê mô tả mean, method sai và các hệ số tương quan

Do đó, không nên hoàn toàn tin tưởng vào hệ thống mô tả mà bên cạnh đó chúng ta cần trực quan hóa phân phối của dữ liệu

Trong bảng thống kê, mỗi bộ dữ liệu đều được đặc trưng bởi một hàm mật độ xác định [pdf - hàm mật độ xác suất]. Các dạng biểu đồ phân phối như

1
2
3
4
5
6
7
8
9
10
11
12
13
56 đều được đặc trưng bởi các dạng đồ thị phân phối dạng của hàm mật độ xác định khác nhau

Hình 2. Đồ thị hàm mật độ xác thực của các phân phối xác suất

1
2
3
4
5
6
7
8
9
10
11
12
13
56

Về mặt lý thuyết [lý thuyết] những phân phối này đều dựa trên những phương pháp xác định

Trong thực nghiệm [empirical] nhiều bộ dữ liệu cho thấy có dạng tương đồng với các phân phối này

Để tìm ra một định dạng tương thích cho hàm mật độ xác thực của một bộ dữ liệu, chúng ta sẽ sử dụng phương pháp KDE [ước tính mật độ hạt nhân]

KDE là gì?

Hãy tưởng tượng tại mỗi quan sát ta có đường phân phối đặc trưng. Hàm kernel sẽ giúp xác định định dạng của đường cong khi độ rộng của đường cong được xác định bởi

1
2
3
4
5
6
7
8
9
10
11
12
13
58. Phương pháp KDE sẽ tính toán tổng số đường cong chạy dọc theo trục $x$ để cấu hình thành đường cong mật độ tổng hợp cho dữ liệu

Hình 3. Phương pháp KDE giúp xây dựng cấu hình phân phối dữ liệu. Ở những nơi có nhiều điểm dữ liệu tập trung thì số lượng các đường cong chồng lên nhau sẽ nhiều hơn và do đó khi tính tổng cộng phá hoại của nó ta sẽ thu được mật độ kernel được đánh giá cao hơn và trái ngược với

Ngoài ra, định dạng

1
2
3
4
5
6
7
8
9
10
11
12
13
58 sẽ giúp xác định mức độ khó hiểu hoặc chi tiết của đường cong. Nếu ta muốn đường cong làm mịn hơn thì cần thiết lập h lớn hơn và đường cong làm mịn hơn thì h cần phải nhỏ hơn. Tuy nhiên, bạn đọc cũng không cần quá quan tâm đến
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
00 vì cách tốt hơn là sử dụng giá trị mặc định được tính trong matplotlib

Bên dưới ta sẽ thực hiện hành động vẽ hàm xác định độ dài mật khẩu của các đài hoa thông qua hàm

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
01 của gói seaborn

1
2
3
4
5
6
7
8
9
10
11
12
13
12
1
2
3
4
5
6
7
8
9
10
11
12
13
13

Tham số quan trọng nhất của hàm số là

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
02 để xác nhận chúng ta sử dụng phương pháp KDE để tính toán đường cong hàm mật độ. Các tham số khác nhau như
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
03,
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
04,
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
05 chỉ là những tham số râu ria quy định về màu sắc, định dạng, kích thước. Ngoài ra
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
06 để thiết lập biểu đồ biểu đồ mà chúng ta sẽ tìm hiểu bên dưới

2. 2 Biểu đồ biểu đồ

Biểu đồ là biểu đồ áp dụng trên một biến liên tục Tìm kiếm sự phân bổ theo tần suất trong các khoảng giá trị được xác định trước của một biến

Có 2 cách tạo biểu đồ biểu đồ theo các khoảng giá trị đó là

  • Phân chia các khoảng giá trị có độ dài bằng nhau và độ dài được tính toán từ số lượng thùng khai báo
  • Tự định nghĩa các khoảng giá trị dựa trên bins_edge là các đầu mút của khoảng

Biểu đồ biểu đồ có thể được hình dung qua gói

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
07. Các biểu đồ của mathplotlib có thể được thiết lập dưới nhiều
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
08 đồ họa khác nhau [thay đổi về chủ đề, kiểu chữ, … nhưng về bản chất vẫn là các đối tượng của mathplotlib]. Trong đó
1
2
3
4
5
6
7
8
9
10
11
12
13
53, một gói dựa trên matplotlib xuất sắc được phát triển bởi Michael Waskom là một trong những
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
08 được sử dụng phổ biến nhất. Trong bài viết này chúng ta sẽ thiết lập style của đồ thị dưới dạng
1
2
3
4
5
6
7
8
9
10
11
12
13
53

Bên dưới là biểu đồ biểu đồ chiều rộng đài hoa trực quan hóa theo 2 cách. Thùng khai báo và cạnh thùng khai báo

Đồ thị biểu đồ theo lượng thùng = 20

If not set style display default is seaborn map will be

1
2
3
4
8
1
2
3
4
5
6
7
8
9
10
11
12
13
15

Ta thấy chủ đề của đồ thị được chuyển sang màu xám nhạt và giữa các biểu đồ cột có phân chia màu trắng nhìn rõ ràng hơn. Đây là những thay đổi về đồ họa rất nhỏ nhưng giúp đồ thị trở nên đẹp mắt hơn so với mặc định của mathplotlib

Đồ thị histogram theo các cạnh bin

Các cạnh của bin được khai báo thông qua cũng cùng tham số

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
12, giá trị được truyền vào khi đó là 1 danh sách các điểm đầu. Từ đó giúp đồ thị linh hoạt hơn khi có thể hiệu chỉnh độ dài của các thùng tùy chọn

1
2
3
4
2
1
2
3
4
5
6
7
8
9
10
11
12
13
19

Ta thấy nhược điểm của biểu đồ đó là đồ thị sẽ bị thay đổi tùy theo số lượng thùng được thiết lập hoặc danh sách các phạm vi đầu được khai báo. Làm như vậy để biết được dạng phân phối của dữ liệu, một biểu tượng khác thường được sử dụng thay thế đó chính là biểu đồ cảnh báo

2. 3. Âm mưu Swarn

Biểu đồ Swarn là biểu đồ điểm biểu diễn các giá trị dưới dạng điểm. Các giá trị trên đồ thị đúng với giá trị thật của quan sát. Điều đó không xảy ra làm mất mát thông tin như biểu đồ. Thông qua biểu đồ cảnh báo ta có thể so sánh được phân phối của các lớp khác nhau trên cùng một đồ thị

Hãy định dạng thông qua ví dụ cụ thể khi trực quan hóa dữ liệu mống mắt theo chiều dài, chiều rộng cánh hoa và đài hoa

1
2
3
4
5
6
7
8
9
10
11
12
13
20
1
2
3
4
5
6
7
8
9
10
11
12
13
21

Muốn thay nhãn của các x = [0, 1, 2] sang target_names = [‘setosa’, ‘versicolor’, ‘virginica’] ta sử dụng hàm plt. xticks[]

1
2
3
4
5
6
7
8
9
10
11
12
13
22
1
2
3
4
5
6
7
8
9
10
11
12
13
23

Từ biểu tượng nhận biết độ dài đài hoa có sự khác biệt ở cả 3 giống hoa iris. Độ dài trung bình của đài hoa tăng dần từ setosa, versicolor đến virginica. Vì swarm là đồ thị giữ nguyên giá trị thực của trục y nên các điểm ngoại lệ có thể phù hợp với thực tế trên từng lớp. Thông báo có thể hiển thị trên biểu đồ bầy đàn giống như không có sự mất mát so với biểu đồ ngăn hoặc mật độ

3. Vẽ nhiều biểu tượng trên cùng 1 biểu tượng

Matplotlib cho phép chúng ta vẽ được nhiều biểu đồ trên cùng 1 biểu đồ thông qua các ô con. Chúng ta có thể xác định vị trí của các ô con dựa trên việc khai báo chỉ số dòng và chỉ số cột tương tự như khai báo phần tử của ma trận

Các giới hạn bên dưới trên cùng 1 biểu tượng chúng ta biểu diễn độ rộng và độ dài của đài hoa

1
2
3
4
5
6
7
8
9
10
11
12
13
22
1
2
3
4
5
6
7
8
9
10
11
12
13
25

Hàm

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
13 sẽ định hình hiển thị các biểu đồ con theo vị trí dòng, cột dựa trên khai báo số lượng [dòng, cột]. Không giới hạn nếu chúng ta muốn có biểu tượng bao gồm 2 đồ thị được hiển thị trên 1 dòng, 2 cột thì cần truyền vào là
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
14. Các tham số trả về.
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
15 lần như hình dạng đồ thị [số liệu] và trục tốc độ [trục]. Trong trường hợp có nhiều đồ thị, ax sẽ là 1 danh sách tương ứng với các đồ thị con. Tại mỗi đồ thị con ta có thể hình dung các biểu đồ theo ý muốn thông qua các hàm
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
16 như
import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
17

Chúng ta có thể sử dụng biểu tượng

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
13 để biểu diễn hình ảnh của các nhãn trong phân loại hình ảnh

1
2
3
4
5
6
7
8
9
10
11
12
13
20
1
2
3
4
5
6
7
8
9
10
11
12
13
27

4. Tổng kết

Như vậy thông qua bài này chúng ta đã làm quen với các dạng biểu đồ. Biểu đồ vạch, đường thẳng, hình tròn, diện tích, bản đồ nhiệt và các dạng biểu đồ về phân phối như. Biểu đồ, mật độ, boxplot, swarn. Ngoài ra chúng ta cũng làm quen với việc sử dụng các gói như matplotlib, seaborn trong visualization

Trên đây mới chỉ là các dạng biểu đồ phổ biến. Ngoài ra còn rất nhiều biểu đồ hình dung khác mà chúng ta sẽ bắt gặp khi làm việc với khoa học dữ liệu. Đồng thời các gói về Visualization trong Python cũng không chỉ giới hạn ở Matplotlib. Một số gói khác cũng được sử dụng nhiều như.

import matplotlib.pyplot as plt
import pandas as pd

import datetime
import pandas_datareader.data as web
from pandas import Series, DataFrame


start = datetime.datetime[2010, 1, 1]
end = datetime.datetime[2017, 1, 11]

df = web.DataReader["AAPL", 'yahoo', start, end]
df.tail[]
19

Chủ Đề