Các đường đồng mức biểu đồ phân tán Python

nhập khẩu cốt truyện. graph_objs khi đi từ cốt truyện. các ô con nhập make_subplots fig = make_subplots[rows=2, cols=2, subplot_titles=['connectgaps = False', 'connectgaps = True']] z = [[Không, Không, Không, 12, 13, 14, 15, 16 . add_trace[đi. Contour[z=z, showscale=False], 1, 1] hình. add_trace[đi. Contour[z=z, showscale=False, connectgaps=True], 1, 2] hình. add_trace[đi. Bản đồ nhiệt[z=z, showscale=False, zsmooth='best'], 2, 1] hình. add_trace[đi. Heatmap[z=z, showscale=False, connectgaps=True, zsmooth='best'], 2, 2] fig['layout']['yaxis1']. update[title='Contour map'] fig['layout']['yaxis3']. cập nhật [tiêu đề = 'Bản đồ nhiệt'] hình. trình diễn[]

Biểu đồ đường viền [đôi khi được gọi là Biểu đồ mức] là một cách để hiển thị bề mặt ba chiều trên mặt phẳng hai chiều. Nó vẽ đồ thị hai biến dự đoán XY trên trục y và biến phản hồi Z dưới dạng các đường viền. Các đường viền này đôi khi được gọi là các lát cắt z hoặc các giá trị phản hồi iso

Biểu đồ đường đồng mức phù hợp nếu bạn muốn xem giá trị Z thay đổi như thế nào dưới dạng hàm của hai đầu vào X và Y, sao cho Z = f[X,Y]. Đường đồng mức hoặc đường đẳng trị của hàm hai biến là một đường cong dọc theo đó hàm có giá trị không đổi

Các biến độc lập x và y thường được giới hạn trong một lưới thông thường được gọi là lưới lưới. các numpy. meshgrid tạo một lưới hình chữ nhật từ một mảng các giá trị x và một mảng các giá trị y

API Matplotlib chứa các hàm đường viền [] và đường viền [] để vẽ các đường viền và đường viền được tô tương ứng. Cả hai chức năng cần ba tham số x, y và z

Đôi khi chúng tôi có thể muốn đại diện cho dữ liệu thứ nguyên cao hơn. Chúng tôi sẽ tạo một thứ gọi là biểu đồ đường viền. Biểu đồ đường viền có thể được sử dụng khi bạn có dữ liệu có ba chiều [

px_orbital.head[]
6,
px_orbital.head[]
7 và
px_orbital.head[]
8]. Một loại biểu đồ đường đồng mức mà bạn có thể quen thuộc với việc mô tả độ cao của đất. Mỗi điểm trên bản đồ sẽ có giá trị
px_orbital.head[]
6, giá trị
px_orbital.head[]
7 và giá trị
px_orbital.head[]
8 [độ cao]. Bạn có thể biểu diễn điều này trên một biểu đồ hai chiều trong đó giá trị z được biểu thị bằng một đường đồng mức hoặc các màu khác nhau

Phần này sẽ thảo luận về việc tạo các biểu đồ đường đồng mức bằng cách sử dụng

import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]
2. Chúng tôi sẽ sử dụng lại quỹ đạo nguyên tử hydro. Thay vì xem xét các quỹ đạo của
import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]
3 đối với
import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]
4 [khoảng cách từ hạt nhân], chúng ta sẽ sử dụng các giá trị của hàm sóng
import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]
5 trên mặt phẳng
import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]
6

Tệp dữ liệu chúng tôi sẽ sử dụng có tên là

import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]
7

Đọc dữ liệu#

Tệp này cũng là một tệp csv, vì vậy chúng tôi sẽ sử dụng pandas để đọc nó trong

px_orbital.head[]
2

px_orbital.head[]

0. 000000000000000000e+00-2. 000000000000000000e+01-1. 900000000000000000e+01-1. 800000000000000000e+01-1. 700000000000000000e+01-1. 600000000000000000e+01-1. 500000000000000000e+01-1. 400000000000000000e+01-1. 300000000000000000e+01-1. 200000000000000000e+01. 1. 100000000000000000e+011. 200000000000000000e+011. 300000000000000000e+011. 400000000000000000e+011. 500000000000000000e+011. 600000000000000000e+011. 700000000000000000e+011. 800000000000000000e+011. 900000000000000000e+012. 000000000000000000e+010-20. 00. 0003530. 0004100. 0004720. 0005380. 0006060. 0006750. 0007420. 0008050. 000861. -0. 000905-0. 000861-0. 000805-0. 000742-0. 000675-0. 000606-0. 000538-0. 000472-0. 000410-0. 0003531-19. 00. 0004320. 0005030. 0005820. 0006650. 0007530. 0008420. 0009300. 0010130. 001087. -0. 001147-0. 001087-0. 001013-0. 000930-0. 000842-0. 000753-0. 000665-0. 000582-0. 000503-0. 0004322-18. 00. 0005240. 0006140. 0007120. 0008180. 0009300. 0010450. 0011580. 0012670. 001364. -0. 001445-0. 001364-0. 001267-0. 001158-0. 001045-0. 000930-0. 000818-0. 000712-0. 000614-0. 0005243-17. 00. 0006320. 0007440. 0008660. 0010000. 0011410. 0012870. 0014330. 0015730. 001701. -0. 001809-0. 001701-0. 001573-0. 001433-0. 001287-0. 001141-0. 001000-0. 000866-0. 000744-0. 0006324-16. 00. 0007570. 0008940. 0010460. 0012120. 0013890. 0015740. 0017600. 0019400. 002106. -0. 002247-0. 002106-0. 001940-0. 001760-0. 001574-0. 001389-0. 001212-0. 001046-0. 000894-0. 000757

5 hàng × 42 cột

Lưu ý rằng lần này, chức năng của chúng tôi

import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]
8 đã không hoạt động chính xác như chúng tôi muốn. Chúng tôi có số trên tiêu đề. Tệp chúng tôi đang đọc trong thời gian này không có tiêu đề, vì vậy chúng tôi phải thông báo cho
import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]
9 rằng không có tiêu đề nào khi chúng tôi đọc tệp dữ liệu trong

import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]

0123456789. 3233343536373839404100. 0-20. 000000-19. 000000-18. 000000-17. 000000-16. 000000-15. 000000-14. 000000-13. 000000-12. 000000. 11. 00000012. 00000013. 00000014. 00000015. 00000016. 00000017. 00000018. 00000019. 00000020. 0000001-20. 00. 0003530. 0004100. 0004720. 0005380. 0006060. 0006750. 0007420. 0008050. 000861. -0. 000905-0. 000861-0. 000805-0. 000742-0. 000675-0. 000606-0. 000538-0. 000472-0. 000410-0. 0003532-19. 00. 0004320. 0005030. 0005820. 0006650. 0007530. 0008420. 0009300. 0010130. 001087. -0. 001147-0. 001087-0. 001013-0. 000930-0. 000842-0. 000753-0. 000665-0. 000582-0. 000503-0. 0004323-18. 00. 0005240. 0006140. 0007120. 0008180. 0009300. 0010450. 0011580. 0012670. 001364. -0. 001445-0. 001364-0. 001267-0. 001158-0. 001045-0. 000930-0. 000818-0. 000712-0. 000614-0. 0005244-17. 00. 0006320. 0007440. 0008660. 0010000. 0011410. 0012870. 0014330. 0015730. 001701. -0. 001809-0. 001701-0. 001573-0. 001433-0. 001287-0. 001141-0. 001000-0. 000866-0. 000744-0. 000632

5 hàng × 42 cột

Chúng tôi sẽ thực hiện một số thao tác cắt bổ sung trên dữ liệu này để vẽ biểu đồ. Bạn sẽ không tự động biết điều này khi nhìn vào tệp dữ liệu, nhưng nó được cấu trúc theo một cách cụ thể. Hàng đầu tiên đại diện cho giá trị

px_orbital.head[]
6 và cột đầu tiên đại diện cho giá trị
px_orbital.head[]
7. Ví dụ, tại điểm
px_orbital.head[]
92, hàm sóng có giá trị
px_orbital.head[]
93. Chúng tôi sẽ lấy ra các giá trị
px_orbital.head[]
6, giá trị
px_orbital.head[]
7 và dữ liệu [hoặc
px_orbital.head[]
96 dưới dạng các biến riêng biệt

Chúng ta sẽ phải sử dụng cú pháp cắt lát với hàm

px_orbital.head[]
97 đã được thảo luận trong phần đầu tiên về khung dữ liệu gấu trúc

px_orbital.head[]
9

px_orbital.head[]
6

12345678910. 3233343536373839404110. 0003530. 0004100. 0004720. 0005380. 0006060. 0006750. 0007420. 0008050. 0008610. 000905. -0. 000905-0. 000861-0. 000805-0. 000742-0. 000675-0. 000606-0. 000538-0. 000472-0. 000410-0. 00035320. 0004320. 0005030. 0005820. 0006650. 0007530. 0008420. 0009300. 0010130. 0010870. 001147. -0. 001147-0. 001087-0. 001013-0. 000930-0. 000842-0. 000753-0. 000665-0. 000582-0. 000503-0. 00043230. 0005240. 0006140. 0007120. 0008180. 0009300. 0010450. 0011580. 0012670. 0013640. 001445. -0. 001445-0. 001364-0. 001267-0. 001158-0. 001045-0. 000930-0. 000818-0. 000712-0. 000614-0. 00052440. 0006320. 0007440. 0008660. 0010000. 0011410. 0012870. 0014330. 0015730. 0017010. 001809. -0. 001809-0. 001701-0. 001573-0. 001433-0. 001287-0. 001141-0. 001000-0. 000866-0. 000744-0. 00063250. 0007570. 0008940. 0010460. 0012120. 0013890. 0015740. 0017600. 0019400. 0021060. 002247. -0. 002247-0. 002106-0. 001940-0. 001760-0. 001574-0. 001389-0. 001212-0. 001046-0. 000894-0. 000757

5 hàng × 41 cột

Tạo một biểu đồ đường viền #

Bây giờ chúng ta đã cắt dữ liệu của mình, chúng ta sẽ sử dụng chức năng đường viền để tạo biểu đồ đường viền. Đối với hàm đường viền, bạn phải đưa ra danh sách các giá trị x, danh sách các giá trị y và một mảng chứa các giá trị z. May mắn thay, dữ liệu của chúng tôi đã ở định dạng này

Chúng tôi cũng thêm lệnh

px_orbital.head[]
98 để giữ kích thước của trục x và trục y giống nhau

px_orbital.head[]
8

px_orbital.head[]
9

Lệnh

px_orbital.head[]
99 trong matplotlib tạo ra một biểu đồ trong đó các mức đường viền không được lấp đầy. Thay vào đó, chúng tôi có thể muốn có một biểu đồ đường viền đầy, vì vậy chúng tôi có thể sử dụng hàm
px_orbital.head[]
60 [
px_orbital.head[]
61 cho
px_orbital.head[]
62] để thay thế

Chúng tôi cũng có thể muốn một thanh màu cho chúng tôi biết thang màu. Các hàm

px_orbital.head[]
99 và
px_orbital.head[]
60 trả về một biến mà chúng ta có thể sử dụng cho một thanh màu. Bạn nên nắm bắt đầu ra của lệnh
px_orbital.head[]
99 hoặc
px_orbital.head[]
60 và thêm một thanh màu vào hình bằng cách sử dụng
px_orbital.head[]
67

px_orbital.head[]
9

px_orbital.head[]
0

Chọn một bản đồ màu #

Khi tạo biểu đồ đường đồng mức, bạn cũng có thể chỉ định bản đồ màu bạn muốn sử dụng. Bạn có thể xem danh sách các bản đồ màu tích hợp sẵn cho matplotlib tại đây

Có nhiều loại bản đồ màu khác nhau mà bạn có thể muốn chọn tùy thuộc vào loại dữ liệu bạn đang xem. Matplotlib đưa ra hướng dẫn sau [xem, e. g. , Moreland]

  1. tuần tự. thay đổi độ đậm nhạt và thường là độ bão hòa của màu tăng dần, thường sử dụng một màu duy nhất;

  2. phân kỳ. thay đổi độ đậm nhạt và có thể là độ bão hòa của hai màu khác nhau gặp nhau ở giữa ở một màu không bão hòa;

  3. theo chu kỳ. thay đổi độ đậm nhạt của hai màu khác nhau gặp nhau ở giữa và bắt đầu/kết thúc ở một màu không bão hòa;

  4. định tính. thường là những màu linh tinh;

Dữ liệu này có cả giá trị dương và âm, không đại diện cho một nút cho hàm sóng. Hãy dành một chút thời gian và suy nghĩ về loại bản đồ màu nào sẽ là tốt nhất cho loại dữ liệu này

Sau khi xem xét, bạn sẽ đi đến kết luận rằng chúng ta nên sử dụng bản đồ màu phân kỳ để thể hiện tốt nhất dữ liệu này. Chúng tôi sẽ sử dụng bản đồ màu “RdBu”

px_orbital.head[]
1

px_orbital.head[]
0

Số Màu Đường Viền - Cấp độ#

Biểu đồ của chúng tôi chỉ hiển thị sáu màu khác nhau theo mặc định, nhưng chúng tôi có thể quan tâm đến chi tiết từng chi tiết của biểu đồ của chúng tôi. Chúng tôi sẽ muốn chỉ định có bao nhiêu màu hoặc bao nhiêu “cấp độ” mà chúng tôi muốn sử dụng trong bản đồ màu của mình

Thật không may, chúng tôi không thể nói chúng tôi muốn bao nhiêu cấp độ. Chúng tôi phải đưa ra các giá trị số mà chúng tôi muốn các mức xảy ra. Ví dụ: nếu dữ liệu của chúng tôi nằm trong khoảng từ -10 đến 10 và chúng tôi muốn có 20 mức cách đều nhau [hoặc, một màu cho mỗi số nguyên], chúng tôi sẽ cần cung cấp cho matplotlib danh sách tất cả các số nguyên để sử dụng làm mức

Đối với dữ liệu của chúng tôi, chúng tôi có thể muốn bắt đầu ở giá trị tối thiểu và kết thúc ở giá trị tối đa. Chúng ta có thể sử dụng một hàm trong numpy có tên là

px_orbital.head[]
68 để tạo các số cách đều nhau giữa giá trị tối thiểu và tối đa

Đầu tiên, chúng tôi nhập numpy và tính toán giá trị tối thiểu và tối đa của các giá trị z của chúng tôi

px_orbital.head[]
1

Tiếp theo, chúng tôi sử dụng hàm

px_orbital.head[]
68 trong numpy để tạo danh sách các số cách đều nhau giữa giá trị tối thiểu và tối đa. Lệnh sau sẽ tạo ra 30 số cách đều nhau

px_orbital.head[]
2

px_orbital.head[]
3

Chúng tôi chuyển danh sách các số này tới đối số

px_orbital.head[]
80 trong hàm
px_orbital.head[]
60. Bây giờ, chúng tôi sẽ sử dụng 30 màu trên cốt truyện của chúng tôi

Việc xem xét cuối cùng cho biểu đồ này là các số trong thanh màu của chúng tôi. Chúng tôi có thể muốn ít nhãn hơn và ít chữ số thập phân hơn. Để chỉ định số vị trí thập phân của chúng tôi, chúng tôi sẽ sử dụng đối số

px_orbital.head[]
82 trong lệnh
px_orbital.head[]
83. Chúng ta có thể cho
import pandas as pd

px_orbital = pd.read_csv["px_2D.csv", header=None]
px_orbital.head[]
2 biết vị trí gắn nhãn thanh màu bằng cách đưa ra danh sách các giá trị. Chúng tôi sẽ tạo lại 6 giá trị cách đều nhau bằng cách sử dụng
px_orbital.head[]
68 và sử dụng các giá trị đó làm dấu kiểm

Sự khác biệt giữa đường viền và Contourf Python là gì?

contour[] và contourf[] lần lượt vẽ các đường đồng mức và các đường bao được tô. Ngoại trừ như đã lưu ý, chữ ký hàm và giá trị trả về giống nhau cho cả hai phiên bản. contourf[] khác với phiên bản MATLAB ở chỗ nó không vẽ các cạnh của đa giác . Để vẽ các cạnh, hãy thêm các đường viền bằng các lệnh gọi tới contour[].

Đường viền MatPlotLib là gì?

MatPlotLib với Python . Nó vẽ đồ thị hai biến dự đoán XY trên trục y và biến phản hồi Z dưới dạng các đường viền. Các đường viền này đôi khi được gọi là các lát cắt z hoặc các giá trị phản hồi iso. a way to show a three-dimensional surface on a two-dimensional plane. It graphs two predictor variables X Y on the y-axis and a response variable Z as contours. These contours are sometimes called the z-slices or the iso-response values.

Chủ Đề