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. Facebook và Twitter
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 data1, 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[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]]
# Print some of the AFM data2, mà chúng tôi cần cho ô 3D của mình
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]]
# 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 data3 sẽ tải trực tiếp dữ liệu của chúng tôi vào mảng 2D
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]]
# Print some of the AFM data4
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]]
# 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ố 8Bâ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 parametersBản đồ nhiệt
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'
Để hiển thị bản đồ nhiệt, chúng tôi sẽ sử dụng chức năng
# Print some of the AFM data5 để 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[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]]
# Print some of the AFM data1
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]]
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 data2
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]]
# Print some of the AFM data6 — 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[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]]
# Print some of the AFM data7, chúng tôi buộc điểm gốc là góc dưới cùng bên trái
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]]
# Print some of the AFM data8 — bản đồ màu cho hình ảnh của chúng tôi. Tất cả các bản đồ màu
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]]
# Print some of the AFM data9 có sẵn có thể được tìm thấy ở đây và việc thêm
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]]
# 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 data5 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
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]]
# 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ôiBâ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 data5
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]]
# 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 parameters1 — giá trị y trên cùng [tương ứng với các giá trị của
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'
# 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 parameters4 — vị trí y của văn bản
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'
# Edit overall plot parameters# Font parameters5 — chuỗi văn bản
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'
# Edit overall plot parameters# Font parameters6 — canh lề dọc [
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'
# Edit overall plot parameters# Font parameters7 có nghĩa là
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'
# Edit overall plot parameters# Font parameters4 tương ứng với phần dưới cùng của văn bản]
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'
# Edit overall plot parameters# Font parameters9 — căn ngang [
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'
# Print some of the AFM data10 có nghĩa là
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]]
# 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 data12. Chúng tôi chuyển đối tượng trục ban đầu của mình
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]]
# Print some of the AFM data13 cho hàm
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]]
# Print some of the AFM data3
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]]
# Print some of the AFM data14 — 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[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]]
# Print some of the AFM data15 — kích thước của các trục mới dọc theo hướng
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]]
# Print some of the AFM data14, so với các trục ban đầu [5% chiều rộng hình ảnh]
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]]
# Print some of the AFM data17 — phần đệm [theo tọa độ tuyệt đối] giữa hai trục
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]]
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 data18 — hình ảnh/biểu đồ để ánh xạ tới thanh màu [chúng tôi đã tạo
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]]
# Print some of the AFM data19 khi chúng tôi sử dụng
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]]
# Print some of the AFM data5 trước đó]
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]]
# Print some of the AFM data21 — trục sử dụng cho thanh màu
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]]
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 data22 để đả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]
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]]
# Import AFM data
afm_data = np.loadtxt['./afm.txt']
2Nếu chúng ta sử dụng
# Print some of the AFM data23 thay vì
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]]
# Print some of the AFM data24, chúng ta có thể tạo các đường bao đầy thay vì chỉ các đường bao
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]]
# Import AFM data
afm_data = np.loadtxt['./afm.txt']
3Sơ đồ đườ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 data5 không được ghi lại đầy đủ trong
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]]
# Print some of the AFM data24 hoặc
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]]
# Print some of the AFM data23. 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ấtCốt truyện 3D
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]]
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 data28 khi chúng tôi tạo đối tượng trục của mình
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]]
# 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']
5Trụ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 data29 — đầ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[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]]
# Print some of the AFM data50
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]]
# Import AFM data
afm_data = np.loadtxt['./afm.txt']
6Bâ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 data51 — lưới các giá trị x
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]]
# Print some of the AFM data52 — lưới các giá trị y
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]]
# Print some of the AFM data53 — lưới các giá trị z
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]]
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']
8Thêm thanh màu
# Import AFM data
afm_data = np.loadtxt['./afm.txt']
9# Print some of the AFM data54 — bao nhiêu để thu nhỏ thanh màu so với kích thước mặc định của nó
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]]
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 data0
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]]
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ậnTô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