Làm cách nào để bạn thêm dữ liệu vào biểu đồ trong python?

Trực quan hóa dữ liệu là một phương pháp quan trọng để chia sẻ dữ liệu của bạn với người khác. Một số người coi trực quan hóa là sơ đồ, biểu đồ hoặc đồ thị. Những tên này đồng nghĩa trong bài viết này

Python có nhiều gói của bên thứ 3 thực hiện trực quan hóa dữ liệu. Trên thực tế, có rất nhiều đến mức có thể hơi choáng ngợp. Một trong những lâu đời nhất và phổ biến nhất là Matplotlib. Matplotlib được biết đến với việc tạo các hình ảnh tĩnh, hoạt hình và tương tác trong Python

Bạn có thể tạo nhiều loại ô và biểu đồ khác nhau với Matplotlib. Nó cũng tích hợp tốt với các thư viện toán học và khoa học dữ liệu khác như NumPy và pandas. Bạn cũng sẽ thấy rằng Matplotlib hoạt động với hầu hết các bộ công cụ GUI của Python, chẳng hạn như Tkinter, wxPython và PyQt. Vì Matplotlib quá nổi tiếng nên nó sẽ là gói vẽ đồ thị được đề cập trong bài viết này

Bạn sẽ được học về các chủ đề sau

  • Tạo biểu đồ đường đơn giản với PyPlot
  • Tạo biểu đồ thanh
  • Tạo biểu đồ hình tròn
  • Thêm nhãn
  • Thêm tiêu đề vào ô
  • Tạo một huyền thoại
  • Hiển thị nhiều hình

Hãy bắt đầu vẽ đồ thị với Matplotlib

Cài đặt Matplotlib

Bạn sẽ cần cài đặt Matplotlib để có thể sử dụng nó. May mắn thay, điều đó rất dễ thực hiện với

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
2

python -m pip install matplotlib

Thao tác này sẽ cài đặt Matplotlib cũng như mọi phụ thuộc mà nó yêu cầu. Bây giờ bạn đã sẵn sàng để bắt đầu vẽ đồ thị

Tạo biểu đồ đường đơn giản với PyPlot

Tạo biểu đồ [hoặc sơ đồ] là mục đích chính của việc sử dụng gói sơ đồ. Matplotlib có một mô-đun con gọi là

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
3 mà bạn sẽ sử dụng để tạo biểu đồ. Để bắt đầu, hãy tiếp tục và tạo một tệp mới có tên
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
4 và thêm đoạn mã sau

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]

Tại đây bạn nhập

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
5 dưới dạng
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
6. Sau đó, bạn tạo một
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
7 chứa danh sách các số trong Python. Để vẽ các số, bạn sử dụng hàm
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
8. Bạn cũng thêm nhãn vào trục y. Cuối cùng, bạn gọi
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
9 để hiển thị cốt truyện

Bây giờ bạn sẽ thấy một cửa sổ trông như thế này

Bây giờ bạn đã biết cách tạo biểu đồ đường đơn giản bằng Matplotlib. Bây giờ bạn sẽ tìm hiểu cách tạo biểu đồ thanh trong phần tiếp theo

Tạo biểu đồ thanh

Tạo biểu đồ thanh bằng Matplotlib rất giống với cách bạn tạo biểu đồ đường. Chỉ cần thêm một vài đối số. Hãy tiếp tục và tạo một tệp mới có tên

python -m pip install matplotlib
00 và nhập đoạn mã sau vào đó

python -m pip install matplotlib
0

Khi bạn tạo biểu đồ thanh bằng cách sử dụng

python -m pip install matplotlib
01, bạn chuyển vào danh sách các giá trị cho trục x. Sau đó, bạn chuyển vào danh sách độ cao cho các thanh. Bạn cũng có thể tùy chọn đặt màu cho các thanh. Trong trường hợp này, bạn đặt chúng thành "màu xanh". Tiếp theo, bạn đặt
python -m pip install matplotlib
02, là các dấu kiểm sẽ xuất hiện dọc theo trục x. Bạn cũng chuyển vào danh sách các nhãn tương ứng với dấu tích

Hãy tiếp tục và chạy mã này và bạn sẽ thấy biểu đồ sau

Bạn cũng có thể tạo biểu đồ thanh ngang với Matplotlib. Tất cả những gì bạn cần làm là thay đổi

python -m pip install matplotlib
01 thành
python -m pip install matplotlib
04. Tạo một tệp mới có tên
python -m pip install matplotlib
05 và thêm mã này

python -m pip install matplotlib
7

Có một thay đổi lén lút khác ở đây. Bạn có thể phát hiện ra nó?

Khi bạn đã sẵn sàng, hãy chạy mã và bạn sẽ thấy như sau

Điều đó trông thật tuyệt và nó không tốn nhiều mã. Bây giờ hãy cùng tìm hiểu cách tạo biểu đồ hình tròn với Matplotlib

Tạo biểu đồ hình tròn

Biểu đồ hình tròn là một con thú khác. Để tạo biểu đồ hình tròn, bạn sẽ sử dụng hàm

python -m pip install matplotlib
08 của Matplotlib, hàm này trả về một đối tượng
python -m pip install matplotlib
09 và một đối tượng
python -m pip install matplotlib
70. Để xem nó hoạt động như thế nào, hãy tạo một tệp mới có tên
python -m pip install matplotlib
71 và đặt mã này vào đó

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
4

Trong mã này, bạn tạo

python -m pip install matplotlib
08 và sau đó sử dụng phương thức
python -m pip install matplotlib
73 của đối tượng
python -m pip install matplotlib
70. Bạn chuyển vào một danh sách các số như bạn đã làm trước đây, cũng như danh sách các nhãn. Sau đó, khi bạn chạy mã, bạn sẽ thấy biểu đồ hình tròn của mình

Điều đó khá tốt cho một đoạn mã ngắn như vậy. Nhưng bạn có thể làm cho biểu đồ hình tròn của mình trông đẹp hơn nữa. Tạo một tệp mới có tên

python -m pip install matplotlib
75 và thêm mã này để xem cách

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
9

Đối với ví dụ này, bạn sử dụng tham số

python -m pip install matplotlib
76 để yêu cầu biểu đồ hình tròn "nổ tung" hoặc xóa một lát cắt khỏi hình tròn. Trong trường hợp này, bạn xóa lát cắt đầu tiên, tương ứng với "Python". Bạn cũng thêm một
python -m pip install matplotlib
77 vào biểu đồ hình tròn. Bạn có thể yêu cầu biểu đồ hình tròn của mình xoay một số độ nhất định ngược chiều kim đồng hồ bằng cách đặt
python -m pip install matplotlib
78. Nếu bạn muốn hiển thị phần trăm lát cắt, bạn có thể sử dụng
python -m pip install matplotlib
79, sẽ sử dụng cú pháp nội suy chuỗi của Python

Khi bạn chạy mã này, biểu đồ hình tròn của bạn sẽ trông như thế này

Đó không phải là gọn gàng sao? . Bây giờ là lúc tìm hiểu cách thêm nhãn vào các biểu đồ khác của bạn

Thêm nhãn

Khi bạn đang vẽ đồ thị dữ liệu, bạn thường sẽ muốn gắn nhãn các trục. Bạn có thể gắn nhãn cho trục x bằng cách sử dụng hàm

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
40 và bạn có thể gắn nhãn cho trục y bằng cách sử dụng hàm
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
41 tương ứng. Để xem nó hoạt động như thế nào, hãy tạo một tệp có tên
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
42 và thêm mã này vào đó

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
7

Tại đây, bạn gọi cả

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
40 và
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
41 và đặt chúng thành các chuỗi khác nhau. Điều này thêm một số văn bản giải thích bên dưới biểu đồ và bên trái của biểu đồ, tương ứng. Đây là kết quả trông như thế nào

Điều đó trông khá đẹp. Biểu đồ của bạn dễ hiểu hơn nhưng thiếu tiêu đề. Bạn sẽ học cách làm điều đó trong phần tiếp theo

Thêm tiêu đề vào ô

Thêm tiêu đề vào biểu đồ của bạn bằng Matplotlib khá đơn giản. Trên thực tế, tất cả những gì bạn cần làm là sử dụng hàm

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
45 để thêm một. Để tìm hiểu cách thực hiện, hãy tạo một tệp mới có tên
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
46 và thêm mã này vào đó

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
2

Thay đổi chính ở đây là ở dòng 9, nơi bạn gọi

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
45 và chuyển vào một chuỗi. Điều này đặt tiêu đề cho biểu đồ và căn giữa nó dọc theo đỉnh theo mặc định. Bạn có thể thay đổi vị trí một chút bằng cách đặt tham số
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
48 thành "trái" hoặc "phải", nhưng bạn không thể chỉ định rằng tiêu đề ở bất kỳ đâu ngoại trừ trên cùng. Ngoài ra còn có một tham số
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
49 mà bạn có thể sử dụng để kiểm soát sự xuất hiện của phông chữ tiêu đề

Bạn cũng thêm một biểu đồ thanh mới vào biểu đồ. Điều này giúp bạn thấy biểu đồ thanh xếp chồng trông như thế nào và cũng giúp bạn chuẩn bị cho phần tiếp theo

Đây là biểu đồ của bạn trông như thế nào bây giờ

Biểu đồ này thậm chí còn đẹp hơn, nhưng nó vẫn còn thiếu thứ gì đó. Ồ. Bạn cần một huyền thoại. Hãy tìm hiểu làm thế nào để làm điều đó tiếp theo

Tạo một huyền thoại

Việc thêm chú thích vào biểu đồ Matplotlib của bạn cũng rất đơn giản. Bạn sẽ sử dụng hàm

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
90 để thêm một. Tạo một tệp mới có tên
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
91. Sau đó, thêm mã này vào nó

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
8

Ở đây bạn thêm một

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
90 ngay trước bạn
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
9 biểu đồ. Khi tạo chú giải, bạn có thể đặt nhãn bằng cách chuyển vào danh sách các chuỗi. Danh sách phải khớp với số ô trong biểu đồ của bạn. Bạn cũng có thể đặt vị trí của chú giải bằng cách sử dụng tham số
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
48

Khi bạn chạy mã này, bạn sẽ thấy biểu đồ của mình được cập nhật trông như thế này

Bây giờ biểu đồ của bạn có tất cả các thành phần bình thường mà bạn mong muốn có trong biểu đồ. Tại thời điểm này, bạn đã thấy rất nhiều nhiệm vụ bạn có thể hoàn thành bằng Matplotlib. Chủ đề cuối cùng để tìm hiểu là cách thêm nhiều số liệu với Matplotlib

Hiển thị nhiều hình

Matplotlib cho phép bạn tạo một số ô trước khi hiển thị chúng. Điều này cho phép bạn làm việc với nhiều bộ dữ liệu cùng một lúc. Có một số cách khác nhau bạn có thể làm điều này. Bạn sẽ xem xét một trong những cách đơn giản nhất để làm như vậy

Tạo một tệp mới có tên

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
95 và thêm mã này

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
3

Tại đây bạn tạo hai ô đường. Trước khi bạn vẽ đồ thị, bạn gọi

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
96, tạo vùng chứa cấp cao nhất cho các ô tiếp theo sau khi nó được gọi. Do đó, ô đầu tiên được thêm vào hình một và ô thứ hai được thêm vào hình 2. Sau đó, khi bạn gọi
# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
9 ở cuối, Matplotlib sẽ mở hai cửa sổ với mỗi biểu đồ được hiển thị riêng

Chạy mã và bạn sẽ thấy hai cửa sổ sau trên máy của mình

Matplotlib cũng hỗ trợ thêm hai hoặc nhiều ô vào một cửa sổ. Để xem nó hoạt động như thế nào, hãy tạo một tệp mới khác và đặt tên cho tệp này là

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
98. Để làm cho mọi thứ thú vị hơn, bạn sẽ sử dụng NumPy trong ví dụ này để tạo hai ô

Ghi chú. Nếu bạn chưa cài đặt, bạn sẽ cần cài đặt NumPy để ví dụ này hoạt động

Ví dụ này dựa trên một ví dụ từ tài liệu Matplotlib

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
0

Tại đây, bạn tạo số tiền cho hai biểu đồ sóng hình sin riêng biệt. Để làm cho cả hai hiển thị trong cùng một cửa sổ, bạn sử dụng lệnh gọi tới

python -m pip install matplotlib
08, đây là một tiện ích hữu ích để tạo nhiều số liệu trong một lệnh gọi. Sau đó, bạn có thể sử dụng đối tượng
python -m pip install matplotlib
70 mà nó trả về để vẽ dữ liệu bạn đã tạo bằng NumPy

Kết quả cuối cùng trông như thế này

Nếu bạn không muốn sử dụng NumPy, bạn có thể vẽ hai bộ số từ ví dụ trước. Trong thực tế, bạn nên thử điều đó. Hãy tiếp tục và tạo một tệp mới có tên

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
71 và thêm mã này

# line_plot.py

import matplotlib.pyplot as plt

def line_plot[numbers]:
    plt.plot[numbers]
    plt.ylabel['Random numbers']
    plt.show[]

if __name__ == '__main__':
    numbers = [2, 4, 1, 6]
    line_plot[numbers]
1

Trong mã này, bạn xóa hoàn toàn mã NumPy và thêm hai danh sách số từ ví dụ trước đó. Sau đó, bạn vẽ chúng bằng cách sử dụng đối tượng

python -m pip install matplotlib
70

Điều này dẫn đến cốt truyện xếp chồng lên nhau sau đây

Tại thời điểm này, bạn sẽ nắm khá rõ cách tạo nhiều hình và các ô xếp chồng lên nhau bằng Matplotlib

kết thúc

Matplotlib là một gói tuyệt vời mà bạn có thể sử dụng để tạo tất cả các loại biểu đồ gọn gàng. Thật ngạc nhiên là bạn chỉ cần viết vài dòng mã để tạo một biểu đồ hữu ích từ dữ liệu của mình. Trong bài viết này, bạn đã tìm hiểu về các chủ đề sau

  • Tạo biểu đồ đường đơn giản với PyPlot
  • Tạo biểu đồ thanh
  • Tạo biểu đồ hình tròn
  • Thêm nhãn
  • Thêm tiêu đề vào ô
  • Tạo một huyền thoại
  • Hiển thị nhiều hình

Matplotlib rất mạnh mẽ và có nhiều tính năng không được đề cập ở đây. Bạn có thể tạo nhiều kiểu trực quan hóa khác với Matplotlib. Có một gói mới hơn gọi là Seaborn được xây dựng trên Matplotlib và làm cho đồ thị của nó trông đẹp hơn. Ngoài ra còn có nhiều gói vẽ đồ thị hoàn toàn riêng biệt khác cho Python. Bạn sẽ thấy rằng Python hỗ trợ hầu hết mọi loại biểu đồ mà bạn có thể nghĩ đến và có thể nhiều loại biểu đồ mà bạn không biết là có tồn tại

Chủ Đề