Cốt truyện 3d python từ csv

Trong hướng dẫn này, chúng tôi chỉ ra rằng chúng ta không chỉ có thể vẽ đồ thị 2 chiều bằng Matplotlib và Pandas mà còn có thể vẽ đồ thị ba chiều bằng Matplot3d. Ở đây, chúng tôi hiển thị một vài ví dụ, như Giá, cho đến nay, đến H-L chẳng hạn. Có nhiều thứ khác mà chúng ta có thể so sánh và 3D Matplotlib không giới hạn ở các ô phân tán. Chúng tôi có thể làm khung dây, thanh, v.v. Nếu có cách vẽ trực tiếp với Pandas, giống như chúng tôi đã làm trước đây với df. cốt truyện(), tôi không biết nó. Tuy nhiên, điều đó không sao, bởi vì chúng ta vẫn có thể đi qua các đối tượng Pandas và vẽ đồ thị bằng cách sử dụng kiến ​​thức về Matplotlib cho phần còn lại

Hãy đến với mã

import pandas as pd
from pandas import DataFrame
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

Ở trên, mọi thứ trông khá điển hình, ngoài lần nhập thứ tư, đây là nơi chúng tôi nhập khả năng hiển thị trục 3D

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)

Ở trên, chúng tôi có mã điển hình mà bạn đã thấy trong loạt bài này, không cần giải thích về nó

Bây giờ, chúng ta hãy đến với những thứ tốt. Giả sử chúng ta muốn so sánh giá và H-L với nhau, để xem liệu có bất kỳ mối tương quan nào giữa H-L và giá một cách trực quan không

threedee = plt.figure().gca(projection='3d')
threedee.scatter(df.index, df['H-L'], df['Close'])
threedee.set_xlabel('Index')
threedee.set_ylabel('H-L')
threedee.set_zlabel('Close')
plt.show()

Vì vậy, điều mới đầu tiên bạn thấy là chúng tôi đã xác định hình của mình, điều này khá bình thường, nhưng sau plt. hình () chúng ta có. gca(hình chiếu='3d'). Bạn hỏi điều này có nghĩa là gì? . Đó là một GUI và chúng tôi cần thông báo ngay cho nó rằng chúng tôi đang có ý định tạo cốt truyện này ở dạng 3D. Những gì Matplotlib làm là vẽ cốt truyện của bạn trên hình theo đúng nghĩa đen, sau đó hiển thị nó khi bạn yêu cầu. Đương nhiên, nếu bạn định vẽ ở chế độ 3D, bạn nên cho Matplotlib biết điều này

Sau đó, chúng tôi làm. phân tán, chỉ lần này chúng tôi chỉ định 3 tham số biểu đồ, x, y và z

Từ đó, chúng tôi chỉ dán nhãn trục và hiển thị cốt truyện. Mặc dù chúng tôi không có Pandas để nắm tay, nhưng cũng không tệ lắm

Bây giờ, so sánh H-L với giá hơi ngớ ngẩn, vì chúng ta có thể loại bỏ biến ngày, vì nó không quan trọng trong phép so sánh đó. Nếu chúng tôi loại bỏ ngày var, thì chúng tôi đã có cho mình một cốt truyện 2D đơn giản và dù sao cũng không cần 3D. Còn H-L, giá và khối lượng thì sao?

Chúng tôi sẽ bắt đầu bằng cách vẽ một điểm duy nhất trong không gian tọa độ 3D. Sau đó, chúng ta sẽ tìm hiểu cách tùy chỉnh các biểu đồ của mình và sau đó chúng ta sẽ chuyển sang các biểu đồ phức tạp hơn như bề mặt Gaussian 3D, đa giác 3D, v.v. Cụ thể, chúng ta sẽ xem xét các chủ đề sau

 

Mục lục

1
  • Vẽ một điểm duy nhất trong không gian 3D
    • Bước 1. Nhập thư viện
    • Bước 2. Tạo hình và trục
    • Bước 3. Vẽ điểm
  • Vẽ một đường liên tục 3D
  • Tùy chỉnh cốt truyện 3D
    • Thêm tiêu đề
    • Thêm nhãn trục
    • Sửa đổi các điểm đánh dấu
    • Sửa đổi các giới hạn trục và đánh dấu
    • Thay đổi kích thước của cốt truyện
    • Tắt/bật đường lưới
    • Đặt màu cốt truyện 3D dựa trên lớp
    • Đặt huyền thoại
    • Đánh dấu lô có kích thước khác nhau
  • Vẽ sơ đồ phân phối Gaussian
  • Vẽ một đa giác 3D
  • Xoay đồ thị 3D bằng chuột
  • Vẽ hai bản phân phối 3D khác nhau
  • Xuất biểu đồ Python 3D sang HTML
  • Sự kết luận

 

Vẽ một điểm duy nhất trong không gian 3D

Chúng ta hãy bắt đầu bằng cách thực hiện từng bước cần thiết để tạo biểu đồ 3D trong Python, với một ví dụ về biểu đồ một điểm trong không gian 3D

Bước 1. Nhập thư viện

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

Câu đầu tiên là câu lệnh nhập tiêu chuẩn để vẽ biểu đồ bằng matplotlib, mà bạn cũng sẽ thấy cho biểu đồ 2D.
Lần nhập thứ hai của lớp 

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
4 là bắt buộc để bật phép chiếu 3D. Mặt khác, nó không được sử dụng ở bất kỳ nơi nào khác.

Lưu ý rằng lần nhập thứ hai là bắt buộc đối với các phiên bản Matplotlib trước 3. 2. 0. Đối với phiên bản 3. 2. 0 trở lên, bạn có thể vẽ sơ đồ 3D mà không cần nhập

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
5

Bước 2. Tạo hình và trục

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

Đầu ra.

Cốt truyện 3d python từ csv

Ở đây, trước tiên chúng ta tạo một hình có kích thước 4 inch X 4 inch.
Sau đó, chúng tôi tạo đối tượng trục 3-D bằng cách gọi phương thức 
fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
6 và chỉ định giá trị '3d' cho tham số 
fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
7.
Chúng ta sẽ sử dụng đối tượng trục ‘ax’ này để thêm bất kỳ đồ thị nào vào hình.

 

Lưu ý rằng hai bước này sẽ phổ biến trong hầu hết các sơ đồ 3D mà bạn thực hiện trong Python bằng Matplotlib

Bước 3. Vẽ điểm

Sau khi tạo đối tượng trục, chúng ta có thể sử dụng nó để tạo bất kỳ loại biểu đồ nào chúng ta muốn trong không gian 3D.
Để vẽ một điểm, chúng ta sẽ sử dụng phương pháp 

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
8 và chuyển ba tọa độ của điểm đó.

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()

Đầu ra.

Cốt truyện 3d python từ csv

Như bạn có thể thấy, một điểm duy nhất đã được vẽ (màu xanh lam) tại (2,3,4).

 

Vẽ một đường liên tục 3D

Bây giờ chúng ta đã biết cách vẽ một điểm trong không gian 3D, tương tự chúng ta có thể vẽ một đường liên tục đi qua danh sách các tọa độ 3D

Chúng ta sẽ sử dụng phương thức 

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
9 và chuyển 3 mảng, mỗi mảng cho tọa độ x, y và z của các điểm trên đường thẳng

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
2

Đầu ra.

Cốt truyện 3d python từ csv

Chúng tôi đang tạo tọa độ x, y và z cho 50 điểm.
Tọa độ x và y được tạo bằng cách sử dụng
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
20 để tạo 50 điểm phân bố đều trong khoảng từ -4π đến +4π. Tọa độ z chỉ đơn giản là tổng bình phương của tọa độ x và y tương ứng.

 

Tùy chỉnh cốt truyện 3D

Hãy để chúng tôi vẽ một biểu đồ phân tán trong không gian 3D và xem cách chúng tôi có thể tùy chỉnh giao diện của nó theo những cách khác nhau dựa trên sở thích của chúng tôi. Chúng tôi sẽ sử dụng hạt giống ngẫu nhiên NumPy để bạn có thể tạo số ngẫu nhiên giống như hướng dẫn

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
4

Đầu ra.

Cốt truyện 3d python từ csv

Bây giờ chúng ta hãy thêm tiêu đề cho cốt truyện này

Thêm tiêu đề

Chúng ta sẽ gọi phương thức 

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
21 của đối tượng axis để thêm tiêu đề vào biểu đồ

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
6

Đầu ra.

Cốt truyện 3d python từ csv

LƯU Ý rằng tôi chưa thêm mã trước (để tạo hình và thêm biểu đồ phân tán) ở đây, nhưng bạn nên làm điều đó.

Bây giờ chúng ta hãy thêm nhãn cho mỗi trục trên biểu đồ

Thêm nhãn trục

Chúng ta có thể đặt nhãn cho từng trục trong sơ đồ 3D bằng cách gọi các phương thức 

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
22, 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
23 và 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
24 trên đối tượng trục

threedee = plt.figure().gca(projection='3d')
threedee.scatter(df.index, df['H-L'], df['Close'])
threedee.set_xlabel('Index')
threedee.set_ylabel('H-L')
threedee.set_zlabel('Close')
plt.show()
0

đầu ra

Cốt truyện 3d python từ csv

Sửa đổi các điểm đánh dấu

Như chúng ta đã thấy trong các ví dụ trước, theo mặc định, điểm đánh dấu cho mỗi điểm là một vòng tròn màu xanh có kích thước không đổi.
Chúng tôi có thể thay đổi giao diện của điểm đánh dấu để làm cho chúng biểu cảm hơn.

Hãy để chúng tôi bắt đầu bằng cách thay đổi màu sắc và phong cách của điểm đánh dấu

threedee = plt.figure().gca(projection='3d')
threedee.scatter(df.index, df['H-L'], df['Close'])
threedee.set_xlabel('Index')
threedee.set_ylabel('H-L')
threedee.set_zlabel('Close')
plt.show()
1

Đầu ra.

Cốt truyện 3d python từ csv

Chúng tôi đã sử dụng các tham số 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
25 và 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
26 để thay đổi kiểu và màu sắc của các điểm riêng lẻ

Sửa đổi các giới hạn trục và đánh dấu

Phạm vi và khoảng giá trị trên các trục được đặt theo mặc định dựa trên giá trị đầu vào.
Tuy nhiên, chúng ta có thể thay đổi chúng thành các giá trị mong muốn.

Hãy để chúng tôi tạo một biểu đồ phân tán khác biểu thị một tập hợp các điểm dữ liệu mới, sau đó sửa đổi phạm vi và khoảng trục của nó

threedee = plt.figure().gca(projection='3d')
threedee.scatter(df.index, df['H-L'], df['Close'])
threedee.set_xlabel('Index')
threedee.set_ylabel('H-L')
threedee.set_zlabel('Close')
plt.show()
4

Đầu ra.

Cốt truyện 3d python từ csv

Chúng tôi đã vẽ dữ liệu của 3 biến là chiều cao, cân nặng và tuổi trên 3 trục.
Như bạn có thể thấy, các giới hạn trên trục X, Y và Z đã được chỉ định tự động dựa trên dữ liệu đầu vào.

Chúng ta hãy sửa đổi giới hạn tối thiểu và tối đa trên mỗi trục, bằng cách gọi các phương thức 

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
27, 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
28 và 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
29

threedee = plt.figure().gca(projection='3d')
threedee.scatter(df.index, df['H-L'], df['Close'])
threedee.set_xlabel('Index')
threedee.set_ylabel('H-L')
threedee.set_zlabel('Close')
plt.show()
8

Đầu ra.

Cốt truyện 3d python từ csv

Giới hạn cho ba trục đã được sửa đổi dựa trên các giá trị tối thiểu và tối đa mà chúng tôi đã chuyển cho các phương thức tương ứng.
Chúng tôi cũng có thể sửa đổi các dấu kiểm riêng lẻ cho từng trục. Hiện tại, các tick trên trục X là [100,120,140,160,180,200].
Hãy để chúng tôi cập nhật điều này lên [100,125,150,175,200]

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
0

Đầu ra.

Cốt truyện 3d python từ csv

Tương tự, chúng ta có thể cập nhật dấu Y và Z bằng cách sử dụng phương pháp 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
40 và 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
41 .

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
1

đầu ra

Cốt truyện 3d python từ csv

Thay đổi kích thước của cốt truyện

Nếu chúng tôi muốn ô của mình lớn hơn hoặc nhỏ hơn kích thước mặc định, chúng tôi có thể dễ dàng đặt kích thước của ô khi khởi tạo hình – sử dụng tham số 

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
42 của phương pháp 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
43,
or we can update the size of an existing plot by calling the 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
44 method on the figure object.
Trong cả hai phương pháp, chúng tôi phải chỉ định chiều rộng và chiều cao của ô tính bằng inch.

Vì chúng ta đã thấy phương pháp đầu tiên để chỉ định kích thước của ô trước đó, bây giờ chúng ta hãy xem xét phương pháp thứ hai i. e sửa đổi kích thước của một ô hiện có.
Chúng tôi sẽ thay đổi kích thước của biểu đồ phân tán thành 6×6 inch.

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
2

Đầu ra.

Cốt truyện 3d python từ csv

Kích thước biểu đồ phân tán của chúng tôi đã được tăng lên so với kích thước mặc định trước đó.

Tắt/bật đường lưới

Tất cả các ô mà chúng tôi đã vẽ cho đến nay đều có đường lưới trên chúng theo mặc định.
Chúng ta có thể thay đổi điều này bằng cách gọi phương thức 

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
45 của đối tượng trục và chuyển giá trị 'Sai. ’
Nếu chúng ta muốn các đường lưới trở lại, chúng ta có thể gọi phương thức tương tự với tham số ‘True. ’.

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
3

đầu ra

Cốt truyện 3d python từ csv

Đặt màu cốt truyện 3D dựa trên lớp

Giả sử rằng các cá nhân được đại diện bởi biểu đồ phân tán của chúng tôi được chia thành hai hoặc nhiều loại.
Chúng ta có thể trình bày thông tin này bằng cách vẽ biểu đồ các cá nhân của mỗi danh mục bằng một màu khác.
Ví dụ: chúng ta hãy chia dữ liệu của mình thành các danh mục 'Nam' và 'Nữ'.
Chúng ta sẽ tạo một mảng mới có cùng kích thước với số lượng điểm dữ liệu và gán giá trị 0 cho ‘Nam’ và 1 cho danh mục ‘Nữ’.
Sau đó, chúng tôi sẽ chuyển mảng này sang tham số màu 

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
26 khi tạo biểu đồ phân tán.

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
4

Đầu ra.

Cốt truyện 3d python từ csv

Hiện tại, cốt truyện hiển thị từng loại trong số hai loại với một màu khác nhau.
Nhưng làm cách nào để biết màu nào tương ứng với danh mục nào?

Chúng ta có thể thêm một ‘thanh màu’ để giải quyết vấn đề này

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
5

đầu ra

Cốt truyện 3d python từ csv

Đặt huyền thoại

Thường thì chúng ta có nhiều hơn 1 bộ dữ liệu mà chúng ta muốn vẽ biểu đồ trên cùng một hình.
Trong tình huống như vậy, chúng ta phải gán nhãn cho từng ô và thêm chú thích vào hình để phân biệt các ô khác nhau với nhau.

Ví dụ: giả sử dữ liệu tuổi-chiều cao-cân nặng của chúng tôi được thu thập từ 3 tiểu bang của Hoa Kỳ là Florida, Georgia và California.
Chúng tôi muốn vẽ biểu đồ phân tán cho 3 trạng thái và thêm chú thích để phân biệt chúng với nhau.

Hãy để chúng tôi tạo 3 ô trong vòng lặp for và gán một nhãn khác cho chúng mỗi lần

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
6

đầu ra

Cốt truyện 3d python từ csv

Đánh dấu lô có kích thước khác nhau

Trong các biểu đồ phân tán mà chúng ta đã thấy cho đến nay, tất cả các điểm đánh dấu đều có kích thước không đổi

Chúng tôi có thể thay đổi kích thước của điểm đánh dấu bằng cách chuyển các giá trị tùy chỉnh vào tham số 

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
47 của biểu đồ phân tán.
Chúng tôi có thể chuyển một số duy nhất để đặt tất cả các điểm đánh dấu thành một kích thước cố định mới hoặc chúng tôi có thể cung cấp một mảng các giá trị, trong đó mỗi giá trị đại diện cho kích thước của một điểm đánh dấu.

Trong ví dụ của chúng tôi, chúng tôi sẽ tính toán một biến mới gọi là 'bmi' từ chiều cao và cân nặng của các cá nhân và làm cho kích thước của các điểm đánh dấu riêng lẻ tỷ lệ thuận với giá trị BMI của họ

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
7

Đầu ra.

Cốt truyện 3d python từ csv

Kích thước của các điểm đánh dấu trong biểu đồ này càng lớn thì chỉ số BMI của những cá nhân đó càng cao và ngược lại.

Vẽ sơ đồ phân phối Gaussian

Bạn có thể biết về một phân phối Gaussian đơn biến được vẽ trên mặt phẳng 2D, thường được gọi là 'đường cong hình chuông'. ’

Cốt truyện 3d python từ csv

nguồn. https. // vi. wikipedia. org/wiki/Tệp. Bình thường_Distribution_PDF. svg

Chúng ta cũng có thể vẽ đồ thị phân phối Gaussian trong không gian 3D, sử dụng phân phối chuẩn đa biến.
Chúng ta phải xác định các biến X và Y và vẽ biểu đồ phân phối xác suất của chúng cùng nhau.

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
8

Đầu ra.

Cốt truyện 3d python từ csv

Sử dụng phương pháp 
df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
48, chúng ta có thể tạo các bề mặt tương tự trong không gian 3D.

Vẽ một đa giác 3D

Chúng ta cũng có thể vẽ đa giác với các đỉnh 3 chiều trong Python

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')
9

đầu ra

Cốt truyện 3d python từ csv

Xoay đồ thị 3D bằng chuột

Để tạo biểu đồ tương tác trong Jupyter Notebook, bạn nên chạy
lệnh ma thuật 

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
49 ở đầu sổ ghi chép.

Điều này cho phép chúng tôi tương tác với các ô 3D, bằng cách phóng to và thu nhỏ ô, cũng như xoay chúng theo bất kỳ hướng nào

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
0

đầu ra

Cốt truyện 3d python từ csv

Vẽ hai bản phân phối 3D khác nhau

Chúng tôi có thể thêm hai biểu đồ 3D khác nhau vào cùng một hình, với sự trợ giúp của phương pháp 

df = pd.read_csv('sp500_ohlc.csv', parse_dates=True)
print(df.head())
df['H-L'] = df.High - df.Low
df['100MA'] = pd.rolling_mean(df['Close'], 100)
60.
Số có 3 chữ số mà chúng tôi cung cấp cho phương thức cho biết số lượng hàng và cột trong lưới cũng như vị trí của ô hiện tại trong lưới.
Hai chữ số đầu tiên cho biết tổng số hàng và cột mà chúng ta cần chia hình thành.
Chữ số cuối cùng cho biết vị trí của ô con trong lưới.

Ví dụ: nếu chúng ta chuyển giá trị 223 cho phương thức 

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
6, thì chúng ta đang đề cập đến ô thứ 3 trong lưới 2×2 (xem xét thứ tự hàng đầu tiên)

Bây giờ chúng ta hãy xem một ví dụ trong đó chúng ta vẽ hai bản phân phối khác nhau trên một ô duy nhất

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
1

Đầu ra.

Cốt truyện 3d python từ csv

Chúng ta có thể vẽ bao nhiêu ô con tùy thích theo cách này, miễn là chúng ta khớp chúng vào lưới.

Xuất biểu đồ Python 3D sang HTML

Nếu chúng tôi muốn nhúng một hình đồ thị 3D vào một trang HTML mà không cần lưu nó dưới dạng tệp hình ảnh trước tiên,
chúng tôi có thể làm như vậy bằng cách mã hóa hình đó thành 'base64' và

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
2

Bây giờ chúng ta có thể viết chuỗi mã HTML này vào một tệp HTML, sau đó chúng ta có thể xem tệp này trong trình duyệt

fig = plt.figure(figsize=(4,4))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(2,3,4) # plot the point (2,3,4) on the figure

plt.show()
3

đầu ra

Cốt truyện 3d python từ csv

Sự kết luận

Trong hướng dẫn này, chúng ta đã học cách vẽ đồ thị 3D trong Python bằng thư viện matplotlib.
Chúng tôi bắt đầu vẽ một điểm trong không gian tọa độ 3D, sau đó vẽ các đường cong 3D và biểu đồ phân tán.

Sau đó, chúng tôi đã học được nhiều cách khác nhau để tùy chỉnh biểu đồ 3D trong Python, chẳng hạn như thêm tiêu đề, chú giải, nhãn trục vào biểu đồ, thay đổi kích thước biểu đồ, bật/tắt đường lưới trên biểu đồ, sửa đổi các dấu kiểm của trục .
Chúng ta cũng đã học cách thay đổi kích thước và màu sắc của điểm đánh dấu dựa trên danh mục điểm dữ liệu.

Sau đó, chúng tôi đã học cách vẽ các bề mặt trong không gian 3D. Chúng tôi đã vẽ sơ đồ phân phối Gaussian và đa giác 3D bằng Python

Sau đó, chúng tôi đã xem cách chúng tôi có thể tương tác với biểu đồ Python 3D trong sổ ghi chép Jupyter

Cuối cùng, chúng ta đã học cách vẽ nhiều ô con trên cùng một hình và cách xuất một hình thành mã HTML