簡體   English   中英

在 Python 中將常量 x、y、z 線添加到 matplotlib 3D 散點圖中

[英]Add constant x, y , z lines into matplotlib 3D scatter plot in Python

我想將常量 x、y、z 線添加到 Python 中的 matplotlib 3D 散點圖中,該散點圖從這個極限點延伸,我可以知道我該怎么做嗎?

x_limit = [-0.5] y_limit = [151] z_limit = [1090]

示例代碼:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import pandas as pd
from scipy.stats import multivariate_normal

fig = plt.figure(figsize=(8,8)) # size 4 inches X 4 inches
ax = fig.add_subplot(111, projection='3d')

np.random.seed(42)
xs = np.random.random(100)*-0.8
ys = np.random.random(100)*300
zs = np.random.random(100)*10500

plot = ax.scatter(xs,ys,zs)

ax.set_title("3D plot with limit")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_zlabel("z")

x_limit = [-0.5]
y_limit = [151]
z_limit = [1090]

ax.scatter(x_limit, y_limit, z_limit, c = 'g', marker = "s", s = 50)

plt.show()

這段代碼應該可以解決問題。 不過,有幾件重要的事情需要注意。 首先,創建的網格網格之所以有效,是因為三個軸中的每一個都共享相同的限制。 其次,雖然 x_limit 和 y_limit 值用作XY參數,但Z參數似乎具有更高的維度(因此我使用full_like來填充與x_1x_2形狀相同的數組限制)。

x_1, x_2 = np.meshgrid(np.arange(0, 1.1, 0.1), np.arange(0, 1.1, 0.1))
ax.plot_surface(x_limit, x_1, x_2, color='r', alpha=0.5)
ax.plot_surface(x_1, y_limit, x_2, color='g', alpha=0.5)
ax.plot_surface(x_1, x_2, np.full_like(x_1, z_limit), color='b', alpha=0.5)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM