Bài tập matplotlib python

Bài viết được sự cho phép của tác giả Kien Dang Chung

Nội dung chính Hiển thị

  • Pylab là gì?
  • 1. Phân cấp đối tượng trong Matplotlib
  • 2. Draw map with plot[]
  • 2. 2 Vẽ nhiều tệp điểm phân tán trên cùng một đồ thị
  • 2. 3 Vẽ nhiều đồ thị trong cùng một ảnh
  • 3. Vẽ tập hợp điểm phân tán với scatter[]

Trước khi bắt đầu với câu hỏi Tại sao Matplotlib là một thư viện phổ biến trong Python? . Tại sao Matplotlib là một thư viện phổ biến trong Python?

Một bức tranh đáng giá ngàn lời nói – Một bức tranh hơn ngàn lời nói

Ngạn ngữ Anh

Như chúng ta đã biết Python được ứng dụng nhiều nhất trong lĩnh vực phân tích dữ liệu, mà trong khoa học dữ liệu, việc trực quan hóa thông tin qua các đồ thị, biểu đồ giúp chúng ta hiểu được các mối quan hệ trong dữ liệu . Matplotlib là thư viện sử dụng để vẽ các đồ thị trong Python, chính vì vậy nó là thư viện cực phổ biến của Python. Bạn thử tưởng tượng một file dữ liệu có dung lượng khoảng 20MB, khi vẽ ra đồ thị từ dữ liệu này bạn vui như phát điên vì có thể hiểu được ngay 20MB mà nói lên cái gì?

Mục đích của bài hướng dẫn này giúp bạn hiểu được cách vẽ các đồ thị, biểu đồ với thư viện matplotlib và từ đó bạn có thể sử dụng thành công nó để trực tiếp hóa dữ liệu

Tìm việc làm python gain cao các vị trí cho bạn

Pylab là gì?

John Đ. Hunter, một nhà thần kinh học bắt đầu phát triển matplotlib vào năm 2003 để mô phỏng các tập lệnh MATLAB, ông qua đời năm 2012 ở tuổi 44. Matplotlib giờ được phát triển và duy trì nhờ cộng đồng của các nhà phát triển khác

Trong MATLAB, chúng ta không cần nhập bất cứ thứ gì mà có thể sử dụng các hàm có sẵn ngay lập tức khác với Python phải thực hiện nhập các thư viện cần thiết. Matplotlib có nguồn gốc từ MATLAB do đó mô-đun Pylab trong thư viện Matplotlib được xây dựng để có cách thức sử dụng hàm như MATLAB. Nó đưa một số hàm và lớp từ Numpy và Matplotlib vào không gian tên giúp người dùng MATLAB có thể chuyển đổi sang Python một cách dễ dàng

Khi bạn thực hiện lệnh nhập sau vào Python

from pylab import *

Bạn có thể sử dụng ngay các hàm như plot[], array[] as trong MATLAB. Vấn đề là do câu lệnh nhập này không ổn, nó bị chồng chéo giữa các mô-đun sử dụng trong chương trình Python. Pylab làm lịch sử để quay lại và nó không được quảng cáo sử dụng, nó sử dụng các tên vô tội với các chức năng ẩn bên trong và rất khó để kiểm tra lỗi, do đó nên sử dụng Matplotlib

Trong Pylab có rất nhiều tiền nhập ẩn khả năng xung đột được che chắn. Matplotlib đã từ bỏ mô-đun này và khuyến cáo không nên sử dụng Pylab, mang mọi thứ trở nên rõ ràng hơn là để hủy bỏ. Không có pylab, chúng ta thường sử dụng một câu lệnh thay thế một cách chính tắc

import matplotlib.pyplot as plt

1. Phân cấp đối tượng trong Matplotlib

Nếu bạn đã đọc tài liệu của Matplotlib, dòng mã dưới đây là một phân cấp cho các đối tượng Python lồng vào nhau. Phân cấp ở đây có nghĩa là kiểu cấu trúc cây các đối tượng Matplotlib trả về từ plot[]. Đối tượng Hình là nơi chứa đồ họa Matplotlib, nó có thể chứa các trục đối tượng. Trục dưới là hệ thống phân cấp các đối tượng nhỏ hơn như đường thẳng, hộp văn bản… Hầu hết các phần tử của đồ thị đều có thể tương tác như các đối tượng trong Python

plt.plot[[1, 2, 3]]

Ví dụ

>>> fig, _ = plt.subplots[]
>>> type[fig]

Trong đoạn mã trên chúng ta tạo ra hai biến với plt. subplots[], biến đầu tiên là fig chứa Hình, biến thứ hai _ chứa các thứ khác. Đây là cấu trúc Tuple trong Python do plt. subplots[] cũng trả về kiểu Tuple. Do cấu trúc cây phân cấp cấu trúc, chúng tôi muốn truy xuất đến phần tử đánh dấu không có giới hạn

>>> one_tick = fig.axes[0].yaxis.get_major_ticks[][0]
>>> type[one_tick]

Fig là thể hiện của lớp Hình bao gồm bên trong nhiều đối tượng Axes. Mỗi Axes có một yaxis và xaxis và chúng lại chứa một tập tin major_sticks và chúng ta lấy cái đầu tiên

Một ví dụ sau đến từ Matplotlib để chúng ta hiểu hơn về phân cấp đối tượng trong Matplotlib

Hình ảnh trên được sinh ra từ mã đoạn sau đây, bạn có thể tham khảo tại Matplotlib

2. Draw map with plot[]

import matplotlib.pyplot as plt
%matplotlib inline

plt.plot[[1,2,3,4,10]]
plt.show[]

Khi sử dụng mô-đun pylot trong thư viện matplotlib, chúng ta sẽ nhập vào với tên rút gọn là plt. %matplotlib inline is the command of Jupyter Notebook to draw các đồ thị bên trong ô của Jupyter Notebook

Để vẽ một dạng đồ thị, chúng ta cần xem các đối tượng có những phương thức nào, bạn có thể sử dụng

dir[plt]

Plt command. plot[] sẽ vẽ một đồ thị bằng cách nối các điểm bằng đường thẳng [matplotlib. dòng. Dòng2D]. Trong ví dụ này, chúng tôi đưa vào một Danh sách các số và Matplotlib sẽ vẽ ra đồ thị bằng cách nối các điểm. By because plt. plot[] trả về một đối tượng, do vậy khi muốn hiển thị đồ thị, chúng ta cần gọi plt. buổi bieu diễn[]

Phương thức plot[] có 3 tham số

plot[x, y, format]
  • Tham số x là danh sách các trục tốc độ x
  • Tham số y là danh sách các trục tốc độ y
  • format format map

Trong ví dụ đầu tiên, khi chúng ta đưa vào một Danh sách thì mặc định đó là danh sách trạng thái hệ thống y và định dạng mặc định là vẽ đường thẳng giữa các điểm. Ví dụ trên tương thích với

________số 8

Kết quả là đường sau khi sử dụng plt. buổi bieu diễn[]

Chú ý, trong bài viết này tôi sẽ sử dụng Jupyter Notebook để demo các ví dụ. Nếu bạn chưa biết cài đặt, sử dụng Jupyter Notebook có thể tham khảo

  • Jupyter Notebook – Công cụ cần thiết khi học Python
  • Key learning Python from A to Z

Quay lại với phần định dạng đồ thị trong tham số thứ 3 của phương thức plot[]. Định dạng này ở dạng viết tắt, nó là tổ hợp của ba thành phần {color}{marker}{line}. Ví dụ “go-” sẽ chọn định dạng điểm có màu xanh và nối hai điểm là đường thẳng. Chúng ta thử thực hiện nó xem sao

We have a other format number as after

  • ‘r*–‘ các điểm hình sao màu đỏ, đường nối các điểm định dạng –
  • 'bD-. ’ các điểm hình kim cương màu xanh dương, đường nối các điểm định dạng -
  • ‘g^-‘ các điểm hình tam giác hướng lên màu xanh lá, đường nối các điểm định dạng -
  • Nếu bạn không muốn các điểm nối với nhau, có thể bỏ định dạng đường thẳng đi, ví dụ: 'go-' sẽ thành 'go'

2. 2 Vẽ nhiều tệp điểm phân tán trên cùng một đồ thị

Bạn có thể vẽ nhiều tệp điểm phân tán trên cùng một đồ thị bằng cách gọi phương thức plot[] nhiều lần. Ví dụ dưới đây sẽ vẽ hai đường đồ thị dựa trên hai tập tin khác nhau với các định dạng khác nhau

plt.plot[[0,1,2,3,4], [1,2,3,4,10], 'go-', label='Python']
plt.plot[[0,1,2,3,4], [10,4,3,2,1], 'ro-', label='C#']
plt.plot[[2.5,2.5,2.5,1.5,0.5], [1,3,5,7,10], 'bo-', label='Java']
plt.title['Vẽ đồ thị trong Python với Matplotlib']
plt.xlabel['X']
plt.ylabel['Y']
plt.legend[loc='best']
plt.show[]

Trong ví dụ này có thêm một số điểm cần chú ý

  • Thêm nhãn cho từng điểm tập tin với tham số thứ 4 trong cốt truyện[]
  • Hiển thị ghi chú các thành phần trong đồ thị với phương thức legend[]
  • Hiển thị nhãn các trục tốc độ x, y với xlabel[] và ylabel[]

2. 3 Vẽ nhiều đồ thị trong cùng một ảnh

Phần đầu bài viết chúng ta đã biết về phân cấp đối tượng trong Matplotlib, mỗi plt. plot[] trả về một đối tượng Figure [là hình ảnh bên ngoài], trong Figure này có rất nhiều đối tượng Axes là một đồ thị con bên trong. Trong phần này, chúng ta sẽ vẽ hai đồ thị cạnh nhau nằm trong cùng một Hình [Hình ảnh]

import matplotlib.pyplot as plt
0

3. Vẽ tập hợp điểm phân tán với scatter[]

Sự khác biệt giữa plot[] và scatter[]

  • plot[] không có khả năng thay đổi màu sắc và kích thước điểm trong tập hợp điểm ban đầu nhưng có thể phân tán[] lại
  • plot[] could vẽ các đường nối hai điểm liên tiếp, scatter[] thì không

Ví dụ dưới đây vẽ ra các điểm trên đồ thị với dữ liệu về chiều cao và cân nặng, mỗi điểm có màu ngẫu nhiên và có kích thước ngẫu nhiên cũng ngẫu nhiên

Chủ Đề