Làm thế nào để bạn hình dung một mảng 3d trong python?

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên

Trình chỉnh sửa mã Python

Có một cách khác để giải quyết giải pháp này?

Trước. Viết chương trình Python để in một danh sách chỉ định sau khi loại bỏ các phần tử thứ 0, thứ 4 và thứ 5.
Tiếp theo. Viết chương trình Python để in các số của một danh sách đã chỉ định sau khi xóa các số chẵn khỏi danh sách đó.

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



Chia sẻ Hướng dẫn / Bài tập này trên. FacebookTwitter

con trăn. Lời khuyên trong ngày

Lập chỉ mục tiêu cực

Trong Python, bạn có thể sử dụng lập chỉ mục phủ định. Trong khi chỉ số dương bắt đầu bằng 0, chỉ số âm bắt đầu bằng -1

Nếu bạn hỏi ý kiến ​​của tôi về mảng Đa chiều, cách đây 5 hoặc 6 năm, tôi sẽ nói rằng chúng là khái niệm đơn giản nhất để nắm bắt nhưng lại phức tạp nhất để thực hiện vì “kỳ quan kiến ​​trúc” ở trên là thứ nảy ra trong đầu tôi ngay khi

Đó là cách đây nhiều năm trước khi tôi phát hiện ra cách dễ nhất, dễ như hiểu 1+1 = 2, để thực hiện chúng. Chà, mặc dù một số bạn có thể đã biết rõ và điều này nghe có vẻ như là một nhiệm vụ tầm thường, nhưng vẫn có một tỷ lệ phần trăm cần làm rõ khái niệm này giống như tôi đã làm cách đây nhiều năm. Vì vậy, thắt dây an toàn, chúng ta bắt đầu

Hãy bắt đầu với những điều cơ bản nhất. Mảng là gì?

Định nghĩa ban đầu của mảng chỉ đơn giản nói rằng

Mảng là phương tiện lưu trữ có thể chứa một số giá trị cố định của một loại

Mặc dù điều này đúng một phần, nhưng nó không còn đúng nữa. Xem xét ngôn ngữ lập trình mà tôi đã chọn trong tay, tôi nghĩ chúng ta có thể mở rộng định nghĩa này và sửa đổi nó lên các cấp độ mới

JavaScript cung cấp tính năng vô cùng hữu ích trong việc cho phép các mảng có thể được tạo động, nghĩa là kích thước của mảng có thể được quyết định sau đó và thậm chí không cần phải sửa. Nó có thể được sửa đổi, tăng hoặc giảm, khi dữ liệu số được lưu trữ trong mảng thay đổi

Chà, tất cả chúng ta có thể đã ghi nhận tính năng động này của việc tạo ra các mảng một chiều hoặc hai chiều tuyến tính tại một số điểm. Vậy là chúng ta bước vào tạo mảng nhiều chiều

Mảng nhiều chiều, theo tôi là một mảng trong một mảng. Hãy thảo luận về một mảng bằng cách sử dụng bảng để hình dung điều này một cách dễ dàng

Hãy tưởng tượng rằng bạn có một bảng đơn giản, nơi bạn cần lưu trữ Thông tin chi tiết về sinh viên như Tên, Tuổi, Lớp và Môn học được cung cấp. Bây giờ, vì chúng ta phải lưu trữ thông tin chi tiết của nhiều sinh viên, rõ ràng đây đã là một mảng hai chiều, nơi các chi tiết trên sẽ được ánh xạ theo cách sau

Biểu diễn hai chiều của Bảng chi tiết sinh viên

Lên đến một mức nhất định, bảng này có vẻ đủ để lấy thông tin từ. Tuy nhiên, nó sẽ được coi là gọn gàng và hiệu quả hơn nhiều nếu cột cuối cùng, nơi lưu 'Đối tượng được cung cấp', cũng được chia nhỏ như hình bên dưới

Một biểu diễn đa chiều của Bảng chi tiết sinh viên

Điều này cung cấp cho chúng tôi đặc quyền thao tác chi tiết của các phân ngành này của các chủ đề cũng như. Vì vậy, làm thế nào để chúng tôi thực hiện điều này?

Hãy gọi mảng ánh xạ Chi tiết sinh viên ở trên là “studentArray”. Và chúng ta sẽ tạo khung cho mảng này

var noOfStudentRecords=100;
var noOfColumns = 4;
var studentArray = [];
for[var x = 0; x < noOfStudentRecords; x++]
{
studentArray[x] = [];
for[var y = 0; y < noOfColumns; y++]
{
if[y==3]
{
studentArray[x][y]= new Array[3];
}
}
}

Trong đoạn mã trên, chúng tôi chỉ định cột thứ ba là một mảng mới. do đó, một mảng trong một mảng khác tạo ra một mảng nhiều chiều

Đây là một lời giải thích rất cơ bản về việc tạo các mảng nhiều chiều. Trong các tình huống phức tạp hơn, chúng tôi có thể chia các đối tượng riêng lẻ này thành các danh mục khác để lưu trữ các chi tiết bổ sung, áp dụng khái niệm tương tự như trên, chỉ trên một khía cạnh khác

Khi bạn đang đo sự phụ thuộc của một thuộc tính vào nhiều biến độc lập, bây giờ bạn cần vẽ dữ liệu theo ba chiều. Các ví dụ về điều này thường xảy ra với các phép đo không gian, trong đó có cường độ liên quan đến từng điểm [x, y], giống như trong phép đo kính hiển vi raster hoặc mẫu nhiễu xạ không gian. Để trực quan hóa dữ liệu này, chúng tôi có một số tùy chọn theo ý của mình — chúng tôi sẽ khám phá cách tạo bản đồ nhiệt, biểu đồ đường viền [không được lấp đầy và được lấp đầy] và biểu đồ 3D

Tập dữ liệu mà tôi sẽ sử dụng cho ví dụ này là một vi ảnh 2 µm x 2 µm từ kính hiển vi lực nguyên tử [AFM]. Đầu tiên, chúng tôi nhập các gói — hai gói mới mà chúng tôi sẽ thêm vào lần này là

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
1, gói này sẽ giúp chúng tôi quản lý thanh màu cho các ô của mình và
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
2, mà chúng tôi cần cho ô 3D của mình

# Import packages
%matplotlib inline
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

Bây giờ chúng tôi sẽ tải dữ liệu AFM của mình, một lần nữa sử dụng

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
3 sẽ tải trực tiếp dữ liệu của chúng tôi vào mảng 2D
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
4

# Import AFM data
afm_data = np.loadtxt['./afm.txt']

Sau đó, chúng tôi có thể kiểm tra một vài hàng mà dữ liệu đã tải của chúng tôi

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]

Ta có một mảng 256 x 256 điểm với mỗi giá trị tương ứng với độ cao đo được [tính bằng mét] tại vị trí đó. Vì chúng tôi biết rằng dữ liệu của chúng tôi sẽ có ý nghĩa hơn nếu được trình bày bằng nanomet, chúng tôi có thể chia tỷ lệ tất cả các giá trị của mình theo tham số không đổi này

________số 8

Bây giờ chúng ta có thể tiếp tục và bắt đầu trực quan hóa dữ liệu của mình. Chúng tôi bắt đầu với việc đặt một số tham số chung [chỉnh sửa các tham số này theo ý muốn của bạn, nhưng đây là các cài đặt tôi sử dụng]

# Edit overall plot parameters# Font parameters
mpl.rcParams['font.family'] = 'Avenir'
mpl.rcParams['font.size'] = 18
# Edit axes parameters
mpl.rcParams['axes.linewidth'] = 2
# Tick properties
mpl.rcParams['xtick.major.size'] = 10
mpl.rcParams['xtick.major.width'] = 2
mpl.rcParams['xtick.direction'] = 'out'
mpl.rcParams['ytick.major.size'] = 10
mpl.rcParams['ytick.major.width'] = 2
mpl.rcParams['ytick.direction'] = 'out'
Bản đồ nhiệt

Để hiển thị bản đồ nhiệt, chúng tôi sẽ sử dụng chức năng

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
5 để hiển thị dữ liệu của chúng tôi dưới dạng hình ảnh. Đầu tiên, chúng tôi tạo một hình và thêm một trục chính để hiển thị hình ảnh của chúng tôi. Ngoài ra, chúng tôi sẽ xóa các dấu kiểm vì chúng tôi sẽ thêm một thanh tỷ lệ

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
1

Bây giờ chúng tôi hiển thị hình ảnh của mình bằng lệnh sau

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
2

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
6 — hình ảnh thường được hiển thị với điểm gốc là góc trên cùng bên trái, vì vậy bằng cách sử dụng
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
7, chúng tôi buộc điểm gốc là góc dưới cùng bên trái

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
8 — bản đồ màu cho hình ảnh của chúng tôi. Tất cả các bản đồ màu
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
9 có sẵn có thể được tìm thấy ở đây và việc thêm
# Convert data to nanometers [nm]
afm_data *= [10**9]
0 vào bất kỳ tên bản đồ màu nào sẽ đảo ngược nó

# Convert data to nanometers [nm]
afm_data *= [10**9]
1 —
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
5 sẽ vẽ hình ảnh của chúng ta bằng cách sử dụng pixel trừ khi chúng ta cho nó biết những pixel này tương ứng với phạm vi nào. Trong trường hợp này, chúng tôi biết rằng hình ảnh của chúng tôi là 2 µm x 2 µm, vì vậy chúng tôi đặt
# Convert data to nanometers [nm]
afm_data *= [10**9]
3 bằng
# Convert data to nanometers [nm]
afm_data *= [10**9]
4

# Convert data to nanometers [nm]
afm_data *= [10**9]
5 — giá trị được đặt ở mức tối thiểu trong bản đồ màu của chúng tôi

# Convert data to nanometers [nm]
afm_data *= [10**9]
6 — giá trị được đặt ở mức tối đa trong bản đồ màu của chúng tôi

Sơ đồ hình ảnh của máy vi tính AFM của chúng tôi

Bây giờ, chúng ta nên thêm thanh tỷ lệ của mình, để bất kỳ ai nhìn vào cốt truyện đều có ý tưởng về tỷ lệ kích thước. Chúng tôi sẽ tạo thanh bằng cách sử dụng

# Convert data to nanometers [nm]
afm_data *= [10**9]
7 để tạo hình chữ nhật đầy, sau đó thêm nhãn văn bản ở trên cùng

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
5

# Convert data to nanometers [nm]
afm_data *= [10**9]
8 — phạm vi x của hình được tô màu của chúng tôi [vì hình ảnh của chúng tôi đi từ [0, 2] phạm vi được chỉ định [1. 4, 1. 9] là 0. 5 µm hoặc 500 nm]

# Convert data to nanometers [nm]
afm_data *= [10**9]
9 — giá trị y dưới cùng [tương ứng với các giá trị của
# Convert data to nanometers [nm]
afm_data *= [10**9]
8] của hình đã điền của chúng ta

# Edit overall plot parameters# Font parameters
mpl.rcParams['font.family'] = 'Avenir'
mpl.rcParams['font.size'] = 18
# Edit axes parameters
mpl.rcParams['axes.linewidth'] = 2
# Tick properties
mpl.rcParams['xtick.major.size'] = 10
mpl.rcParams['xtick.major.width'] = 2
mpl.rcParams['xtick.direction'] = 'out'
mpl.rcParams['ytick.major.size'] = 10
mpl.rcParams['ytick.major.width'] = 2
mpl.rcParams['ytick.direction'] = 'out'
1 — giá trị y trên cùng [tương ứng với các giá trị của
# Convert data to nanometers [nm]
afm_data *= [10**9]
8] của hình đã điền

# Import packages
%matplotlib inline
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
1

# Convert data to nanometers [nm]
afm_data *= [10**9]
8 — vị trí x của văn bản

# Edit overall plot parameters# Font parameters
mpl.rcParams['font.family'] = 'Avenir'
mpl.rcParams['font.size'] = 18
# Edit axes parameters
mpl.rcParams['axes.linewidth'] = 2
# Tick properties
mpl.rcParams['xtick.major.size'] = 10
mpl.rcParams['xtick.major.width'] = 2
mpl.rcParams['xtick.direction'] = 'out'
mpl.rcParams['ytick.major.size'] = 10
mpl.rcParams['ytick.major.width'] = 2
mpl.rcParams['ytick.direction'] = 'out'
4 — vị trí y của văn bản

# Edit overall plot parameters# Font parameters
mpl.rcParams['font.family'] = 'Avenir'
mpl.rcParams['font.size'] = 18
# Edit axes parameters
mpl.rcParams['axes.linewidth'] = 2
# Tick properties
mpl.rcParams['xtick.major.size'] = 10
mpl.rcParams['xtick.major.width'] = 2
mpl.rcParams['xtick.direction'] = 'out'
mpl.rcParams['ytick.major.size'] = 10
mpl.rcParams['ytick.major.width'] = 2
mpl.rcParams['ytick.direction'] = 'out'
5 — chuỗi văn bản

# Edit overall plot parameters# Font parameters
mpl.rcParams['font.family'] = 'Avenir'
mpl.rcParams['font.size'] = 18
# Edit axes parameters
mpl.rcParams['axes.linewidth'] = 2
# Tick properties
mpl.rcParams['xtick.major.size'] = 10
mpl.rcParams['xtick.major.width'] = 2
mpl.rcParams['xtick.direction'] = 'out'
mpl.rcParams['ytick.major.size'] = 10
mpl.rcParams['ytick.major.width'] = 2
mpl.rcParams['ytick.direction'] = 'out'
6 — canh lề dọc [
# Edit overall plot parameters# Font parameters
mpl.rcParams['font.family'] = 'Avenir'
mpl.rcParams['font.size'] = 18
# Edit axes parameters
mpl.rcParams['axes.linewidth'] = 2
# Tick properties
mpl.rcParams['xtick.major.size'] = 10
mpl.rcParams['xtick.major.width'] = 2
mpl.rcParams['xtick.direction'] = 'out'
mpl.rcParams['ytick.major.size'] = 10
mpl.rcParams['ytick.major.width'] = 2
mpl.rcParams['ytick.direction'] = 'out'
7 có nghĩa là
# Edit overall plot parameters# Font parameters
mpl.rcParams['font.family'] = 'Avenir'
mpl.rcParams['font.size'] = 18
# Edit axes parameters
mpl.rcParams['axes.linewidth'] = 2
# Tick properties
mpl.rcParams['xtick.major.size'] = 10
mpl.rcParams['xtick.major.width'] = 2
mpl.rcParams['xtick.direction'] = 'out'
mpl.rcParams['ytick.major.size'] = 10
mpl.rcParams['ytick.major.width'] = 2
mpl.rcParams['ytick.direction'] = 'out'
4 tương ứng với phần dưới cùng của văn bản]

# Edit overall plot parameters# Font parameters
mpl.rcParams['font.family'] = 'Avenir'
mpl.rcParams['font.size'] = 18
# Edit axes parameters
mpl.rcParams['axes.linewidth'] = 2
# Tick properties
mpl.rcParams['xtick.major.size'] = 10
mpl.rcParams['xtick.major.width'] = 2
mpl.rcParams['xtick.direction'] = 'out'
mpl.rcParams['ytick.major.size'] = 10
mpl.rcParams['ytick.major.width'] = 2
mpl.rcParams['ytick.direction'] = 'out'
9 — căn ngang [
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
10 có nghĩa là
# Convert data to nanometers [nm]
afm_data *= [10**9]
8 tương ứng với trung tâm của văn bản]

Ảnh hiển vi AFM có thêm thanh tỷ lệ

Cuối cùng, chúng ta có thể thêm một thanh màu để hiển thị màu sắc trong hình ảnh của chúng ta tương ứng với giá trị chiều cao như thế nào. Đầu tiên, chúng tôi tạo một đối tượng trục mới cho thanh màu, chúng tôi thực hiện bằng cách nối thêm một trục mới ở bên phải của trục ban đầu bằng cách sử dụng hàm

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
12. Chúng tôi chuyển đối tượng trục ban đầu của mình
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
13 cho hàm

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
3

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
14 — nơi nối các trục tiếp theo, trong trường hợp này là ở bên phải của ảnh gốc

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
15 — kích thước của các trục mới dọc theo hướng
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
14, so với các trục ban đầu [5% chiều rộng hình ảnh]

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
17 — phần đệm [theo tọa độ tuyệt đối] giữa hai trục

Bây giờ, chúng ta biến đối tượng trục mới này thành một thanh màu

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
0

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
18 — hình ảnh/biểu đồ để ánh xạ tới thanh màu [chúng tôi đã tạo
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
19 khi chúng tôi sử dụng
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
5 trước đó]

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
21 — trục sử dụng cho thanh màu

Cuối cùng, chúng tôi điều chỉnh các dấu tick và nhãn cho thanh màu

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
1

Ảnh hiển vi AFM với thanh tỷ lệ và thanh màu

Giống như trong bản đồ địa hình được tìm thấy ở hầu hết các lối mòn đi bộ đường dài, chúng tôi cũng có thể trình bày dữ liệu ba chiều với các đường đồng mức có cường độ không đổi. Bây giờ chúng ta sẽ vẽ cùng một dữ liệu AFM bằng cách sử dụng biểu đồ đường viền

Chúng tôi sử dụng mã giống như trước, với dòng sau đã thay đổi [Tôi đã thêm

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
22 để đảm bảo rằng biểu đồ đường viền nằm bên dưới thanh tỷ lệ vì các số thứ tự z thấp hơn được vẽ trước]

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
2

Biểu đồ đường viền vi mô AFM với thanh tỷ lệ và thanh màu

Nếu chúng ta sử dụng

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
23 thay vì
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
24, chúng ta có thể tạo các đường bao đầy thay vì chỉ các đường bao

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
3

Sơ đồ đường viền chứa đầy vi đồ AFM với thanh tỷ lệ và thanh màu

Trong trường hợp này, rất nhiều chi tiết tốt hơn từ

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
5 không được ghi lại đầy đủ trong
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
24 hoặc
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
23. Nếu bạn có dữ liệu khá mượt mà không có nhiều chi tiết nhỏ hơn, hình ảnh đường viền có thể trông đẹp hơn bản đồ nhiệt. Cuối cùng, bạn muốn trình bày dữ liệu của mình theo cách minh bạch và đơn giản nhất có thể, vì vậy, trong trường hợp này, bản đồ nhiệt với thanh màu có lẽ là tốt nhất

Cốt truyện 3D

Cho đến thời điểm này, chúng tôi đã giới hạn các ô của mình ở hai chiều và sử dụng thang màu để cho phép người đọc suy ra cường độ. Nếu chúng tôi muốn hiểu rõ hơn về các giá trị cường độ này, chúng tôi thực sự có thể vẽ dữ liệu của mình ở dạng 3D

Chúng tôi bắt đầu bằng cách tạo một trục 3D với đoạn mã sau, chìa khóa ở đây là chúng tôi đang sử dụng

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
28 khi chúng tôi tạo đối tượng trục của mình

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
4

Đối tượng trục 3D trống

Các ô màu xám và lưới trục tạo thêm sự lộn xộn cho biểu đồ của chúng ta, vì vậy hãy loại bỏ chúng. Ngoài ra, tôi sẽ thêm lại thanh màu cho chiều cao - trục z sẽ bị nén rất nhiều do chế độ xem phối cảnh, vì vậy tôi sẽ xóa nó

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
5

Trục 3D trống không có ô nền và trục z

Đối với biểu đồ bề mặt, chúng ta cần các mảng 2D có giá trị x và y tương ứng với các giá trị cường độ. Chúng tôi làm điều này bằng cách tạo một lưới mắt lưới với

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
29 — đầu vào của chúng tôi cho chức năng này là một mảng các giá trị x và giá trị y để lặp lại trong lưới mà chúng tôi sẽ tạo bằng cách sử dụng
# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
50

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
6

Bây giờ chúng ta đã có lưới lưới, chúng ta có thể vẽ dữ liệu 3D của mình

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
7

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
51 — lưới các giá trị x

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
52 — lưới các giá trị y

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
53 — lưới các giá trị z

Sơ đồ 3D của máy vi tính AFM

Bây giờ, chúng ta có thể điều chỉnh chế độ xem của cốt truyện - có ba tham số mà chúng ta kiểm soát cho điều này. độ cao, góc phương vị [trong mặt phẳng x-y] và khoảng cách từ các trục, gần tương ứng với các giá trị hệ tọa độ cầu lần lượt là φ, θ và r. Tôi đang đặt góc phương vị thành 225˚ vì chúng tôi muốn trục x và y gặp nhau tại [0, 0]

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
8

Thêm thanh màu

# Import AFM data
afm_data = np.loadtxt['./afm.txt']
9

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
54 — bao nhiêu để thu nhỏ thanh màu so với kích thước mặc định của nó

Cuối cùng, chúng tôi chỉnh sửa một số tính thẩm mỹ — các dấu kiểm trên trục x và y, giới hạn trục và nhãn trục

# Print some of the AFM data
print[afm_data[0:5]]
>>> [[4.8379e-08 4.7485e-08 4.6752e-08 .. 6.0293e-08 5.7804e-08 5.4779e-08]
[5.0034e-08 4.9139e-08 4.7975e-08 .. 5.7221e-08 5.4744e-08 5.1316e-08]
[5.2966e-08 5.2099e-08 5.1076e-08 .. 5.4061e-08 5.0873e-08 4.7128e-08]
[5.7146e-08 5.6070e-08 5.4871e-08 .. 5.1104e-08 4.6898e-08 4.1961e-08]
[6.2167e-08 6.0804e-08 5.9588e-08 .. 4.7038e-08 4.2115e-08 3.7258e-08]]
0

Sơ đồ 3D của máy vi tính AFM với thanh màu

Biểu đồ này cho phép người đọc thực sự nhìn thấy các dao động độ cao ngoài việc sử dụng màu sắc cho các giá trị cường độ. Tuy nhiên, một bộ dữ liệu ồn ào hơn có thể dẫn đến một cốt truyện 3D rất lộn xộn

Sự kết luận

Tôi hy vọng hướng dẫn này hữu ích trong việc giải quyết các phương pháp khác nhau để vẽ các bộ dữ liệu ba chiều. Các ví dụ có sẵn tại kho lưu trữ Github này. Cảm ơn vì đã đọc

Chủ Đề