Hướng dẫn matlab library in python - thư viện matlab trong python

Nội dung chính

Viết các chương trình Python® hoạt động với MATLAB®

Chức năng

mở rộng tất cả

Chức năng Python Functions

Chức năng MATLAB Functions

Chủ đề

Cài đặt

  • Yêu cầu hệ thống cho API MATLAB Engine cho Python những gì bạn cần viết và xây dựng các ứng dụng động cơ MATLAB cho Python.
    What you need to write and build MATLAB engine applications for Python.
  • Cài đặt API MATLAB Engine cho Python

    Để khởi động MATLAB Engine trong phiên Python, hãy cài đặt API động cơ dưới dạng gói Python.

    • Tập lệnh thiết lập Python để cài đặt API MATLAB Engine
    • Cài đặt API MATLAB Engine cho Python ở các vị trí Nondefault

Bắt đầu

  • Bắt đầu với API MATLAB Engine cho Python API động cơ MATLAB cho Python cung cấp gói Python có tên
    import matplotlib.pyplot as plt
    2 cho phép bạn gọi các chức năng MATLAB từ Python.

    The MATLAB Engine API for Python provides a Python package named
    import matplotlib.pyplot as plt
    2 that enables you to call MATLAB functions from Python.
  • Bắt đầu và dừng MATLAB Engine cho các tùy chọn Python để khởi động động cơ MATLAB cho Python.
    Options for starting the MATLAB Engine for Python.
  • Gọi các chức năng MATLAB từ Python Cách trả về một đối số đầu ra từ hàm MATLAB. Cách đọc nhiều đầu ra từ một hàm. Phải làm gì khi hàm MATLAB không trả về đối số đầu ra.
    How to return an output argument from a MATLAB function. How to read multiple outputs from a function. What to do when the MATLAB function does not return an output argument.
  • Nhận trợ giúp cho các chức năng MATLAB từ Python từ Python, bạn có thể truy cập tài liệu hỗ trợ cho tất cả các chức năng MATLAB.
    From Python, you can access supporting documentation for all MATLAB functions.

Trao đổi dữ liệu và lập bản đồ

  • Sử dụng các mảng MATLAB trong Python Ví dụ này cho thấy cách tạo một mảng MATLAB trong Python và chuyển nó dưới dạng đối số đầu vào cho hàm MATLAB
    import matplotlib.pyplot as plt
    3.

    This example shows how to create a MATLAB array in Python and pass it as the input argument to the MATLAB
    import matplotlib.pyplot as plt
    3 function.
  • Các mảng MATLAB dưới dạng các biến Python Mô -đun Python
    import matplotlib.pyplot as plt
    2 cung cấp các lớp mảng để biểu thị các mảng của các loại số MATLAB dưới dạng các biến python để có thể truyền các mảng MATLAB giữa Python và Matlab.

    The
    import matplotlib.pyplot as plt
    2 Python module provides array classes to represent arrays of MATLAB numeric types as Python variables so that MATLAB arrays can be passed between Python and MATLAB.
  • Chuyển dữ liệu cho MATLAB từ Python Khi bạn truyền dữ liệu Python làm đối số đầu vào cho các hàm MATLAB, công cụ MATLAB cho Python chuyển đổi dữ liệu thành các loại dữ liệu MATLAB tương đương.
    When you pass Python data as input arguments to MATLAB functions, the MATLAB Engine for Python converts the data into equivalent MATLAB data types.
  • Xử lý dữ liệu được trả về từ MATLAB đến Python Khi các hàm MATLAB trả về các đối số đầu ra, API động cơ MATLAB cho Python chuyển đổi dữ liệu thành các loại dữ liệu Python tương đương.
    When MATLAB functions return output arguments, the MATLAB Engine API for Python converts the data into equivalent Python data types.
  • Sử dụng các đối tượng xử lý MATLAB trong Python Ví dụ này cho thấy cách tạo một đối tượng từ lớp xử lý MATLAB và gọi các phương thức của nó trong Python.
    This example shows how to create an object from a MATLAB handle class and call its methods in Python.
  • Các loại số mặc định trong MATLAB và Python MATLAB lưu trữ tất cả các giá trị số dưới dạng số điểm nổi độ chính xác kép theo mặc định.
    MATLAB stores all numeric values as double-precision floating point numbers by default.

Gọi các chức năng MATLAB

  • Gọi các tập lệnh và chức năng của người dùng từ Python Ví dụ này cho thấy cách gọi tập lệnh MATLAB để tính toán khu vực của một tam giác từ Python.
    This example shows how to call a MATLAB script to compute the area of a triangle from Python.
  • Sắp xếp và âm mưu dữ liệu MATLAB từ Python Ví dụ này cho thấy cách sắp xếp dữ liệu về bệnh nhân vào danh sách người hút thuốc và người không hút thuốc trong Python và âm mưu đọc huyết áp cho bệnh nhân mắc MATLAB.
    This example shows how to sort data about patients into lists of smokers and nonsmokers in Python and plot blood pressure readings for the patients with MATLAB.
  • Gọi các chức năng MATLAB không đồng bộ từ Python Ví dụ này cho thấy cách gọi chức năng MATLAB
    import matplotlib.pyplot as plt
    3 không đồng bộ từ Python và lấy lại căn bậc hai sau.

    This example shows how to call the MATLAB
    import matplotlib.pyplot as plt
    3 function asynchronously from Python and retrieve the square root later.
  • Chuyển hướng đầu ra tiêu chuẩn và lỗi đến Python Ví dụ này cho thấy cách chuyển hướng đầu ra tiêu chuẩn và lỗi tiêu chuẩn từ hàm MATLAB sang các đối tượng Python
    import matplotlib.pyplot as plt
    6.

    This example shows how to redirect standard output and standard error from a MATLAB function to Python
    import matplotlib.pyplot as plt
    6 objects.

Xử lý sự cố

Main Content

Nội dung chính

  • Python Functions
  • MATLAB Functions
  • Getting Started
  • Data Exchange and Mapping
  • Calling MATLAB Functions
  • Troubleshooting
  • 1. Phân cấp đối tượng trong Matplotlib
  • 2. Vẽ đồ thị với plot()
  • 2.2 Vẽ nhiều tập điểm phân tán trên cùng đồ 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()

Sự khác biệt giữa plot() và scatter():

plot() không có khả năng thay đổi màu và kích thước điểm trong tập hợp điểm ban đầu nhưng scatter() lại có thể.

plot() có thể vẽ các đường nối hai điểm liên tiếp, scatter() thì không.

Python Functions

MATLAB Functions

Getting Started

Data Exchange and Mapping

  • Calling MATLAB Functions
    What you need to write and build MATLAB engine applications for Python.
  • Troubleshooting

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

    • 2. Vẽ đồ thị với plot()
    • 2.2 Vẽ nhiều tập điểm phân tán trên cùng đồ thị

Getting Started

  • Data Exchange and Mapping
    The MATLAB Engine API for Python provides a Python package named
    import matplotlib.pyplot as plt
    2 that enables you to call MATLAB functions from Python.
  • Calling MATLAB Functions
    Options for starting the MATLAB Engine for Python.
  • Troubleshooting
    How to return an output argument from a MATLAB function. How to read multiple outputs from a function. What to do when the MATLAB function does not return an output argument.
  • 1. Phân cấp đối tượng trong Matplotlib
    From Python, you can access supporting documentation for all MATLAB functions.

Data Exchange and Mapping

  • Calling MATLAB Functions
    This example shows how to create a MATLAB array in Python and pass it as the input argument to the MATLAB
    import matplotlib.pyplot as plt
    3 function.
  • Troubleshooting
    The
    import matplotlib.pyplot as plt
    2 Python module provides array classes to represent arrays of MATLAB numeric types as Python variables so that MATLAB arrays can be passed between Python and MATLAB.
  • 1. Phân cấp đối tượng trong Matplotlib
    When you pass Python data as input arguments to MATLAB functions, the MATLAB Engine for Python converts the data into equivalent MATLAB data types.
  • 2. Vẽ đồ thị với plot()
    When MATLAB functions return output arguments, the MATLAB Engine API for Python converts the data into equivalent Python data types.
  • 2.2 Vẽ nhiều tập điểm phân tán trên cùng đồ thị
    This example shows how to create an object from a MATLAB handle class and call its methods in Python.
  • Write Python® programs that work with MATLAB®
    MATLAB stores all numeric values as double-precision floating point numbers by default.

Calling MATLAB Functions

  • Troubleshooting
    This example shows how to call a MATLAB script to compute the area of a triangle from Python.
  • 1. Phân cấp đối tượng trong Matplotlib
    This example shows how to sort data about patients into lists of smokers and nonsmokers in Python and plot blood pressure readings for the patients with MATLAB.
  • 2. Vẽ đồ thị với plot()
    This example shows how to call the MATLAB
    import matplotlib.pyplot as plt
    3 function asynchronously from Python and retrieve the square root later.
  • 2.2 Vẽ nhiều tập điểm phân tán trên cùng đồ thị
    This example shows how to redirect standard output and standard error from a MATLAB function to Python
    import matplotlib.pyplot as plt
    6 objects.

Troubleshooting

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? chúng ta đến với vài câu nói đúc kết của người xưa mà còn nguyên giá trị đến nay.Tại sao Matplotlib là một thư viện phổ biến trong Python? chúng ta đến với vài câu nói đúc kết của người xưa mà còn nguyên giá trị đến nay.

Nội dung chính

  • 1. Phân cấp đối tượng trong Matplotlib
  • 2. Vẽ đồ thị với plot()
  • 2.2 Vẽ nhiều tập điểm phân tán trên cùng đồ 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()

Nội dung chính

  • 1. Phân cấp đối tượng trong Matplotlib
  • 2. Vẽ đồ thị với plot()
  • 2.2 Vẽ nhiều tập điểm phân tán trên cùng đồ 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()

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

A picture is worth a thousand words - 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 sử 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 qua các đồ thị, biểu đồ giúp cho chúng ta hiểu được các mối quan hệ trong dữ liệu dễ dàng hơn rất nhiều. Matplotlib là một 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 khoảng 20MB, khi vẽ ra đồ thị từ dữ liệu này bạn sướng như phát điên vì có thể hiểu được ngay 20MB đó nói lên cái gì? Ngày nay, khi Big data đang trở thành thực tế, hàng ngày có quá nhiều dữ liệu, việc trực quan hóa dữ liệu càng trở nên cấp thiết và càng thúc đẩy những thư viện như Matplotlib phát triển hơn.

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 thạo nó cho trực quan hóa dữ liệu.

Pylab là gì

John D. Hunter, một nhà thần kinh học bắt đầu phát triển matplotlib 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ì bởi cộng đồng các nhà phát triển khác.

Trong MATLAB, chúng ta không cần import 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 import các thư viện cần thiết. Matplotlib có nguồn gốc từ MATLAB do đó module Pylab trong thư viện Matplotlib được xây dựng để có đượ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 namespace giúp cho người dùng MATLAB có thể chuyển đổi sang Python sử dụng dễ dàng.

from pylab import *

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

Bạn có thể sử dụng được ngay các hàm như plot(), array() như trong MATLAB. Vấn đề là với câu lệnh import này không ổn, nó bị chồng chéo các module sử dụng trong chương trình Python. Pylab do lịch sử để lại và nó không được khuyến cáo sử dụng, nó sử dụng các tên vô tội vạ với các chức năng ẩn giấu bên trong và rất khó để kiểm tra lỗi, do đó nên sử dụng Matplotlib.

import matplotlib.pyplot as plt

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

2. Vẽ đồ thị với plot()

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

2.2 Vẽ nhiều tập điểm phân tán trên cùng đồ thị

>>> fig, _ = plt.subplots()
>>> type(fig)

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

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

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

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

A picture is worth a thousand words - Một bức tranh hơn ngàn lời nói

2. Vẽ đồ thị với plot()

import matplotlib.pyplot as plt
%matplotlib inline

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

2.2 Vẽ nhiều tập điểm phân tán trên cùng đồ thị

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

dir(plt)

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

Phương thức plot() có 3 tham số:

plot(x, y, format)
  • Tham số x là danh sách các tọa độ trục x
  • Tham số y là danh sách các tọa độ trục y
  • format định dạng đồ thị

Trong ví dụ đầu, khi chúng ta đưa vào một List thì mặc định đó là danh sách tọa độ trục 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 đương với:

plt.plot([1,2,3,4,10])

Kết quả được đường sau khi sử dụng plt.show():

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
  • Khóa học Python từ A đến 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ẽ cho đị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:

Chúng ta có một số định dạng khác như sau:

  • 'r*--' các điểm hình ngôi sao màu đỏ, đường nối các điểm dạng --.
  • 'bD-.' các điểm hình kim cương màu xanh dương, đường nối các điểm 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 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 đồ 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 điểm khác nhau với đị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 tập điểm với tham số thứ 4 trong plot().
  • 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ọa độ 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 các đố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 Figure (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 và kích thước điểm trong tập hợp điểm ban đầu nhưng scatter() lại có thể.
  • plot() có thể 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 cũng ngẫu nhiên.

import matplotlib.pyplot as plt
1

Kết quả như sau:


CÁC BÀI VIẾT KHÁC