ax
=
plt
.
axes
(
projection
=
'3d'
)
xx
=
[
x
,
x
+
dx
,
x
+
dx
,
x
,
x
]
yy
=
[
y
+
dy
,
y
+
dy
,
y
,
y
,
y
+
dy
]
kwargs1
=
{
'linewidth'
:
1
,
'color'
:
'black'
,
'linestyle'
:
'-'
}
kwargs2
=
{
'linewidth'
:
1
,
'color'
:
'black'
,
'linestyle'
:
'--'
}
ax
.
plot
(
xx
,
yy
,
[
z
+
dz
]
*
5
,
**
kwargs1
)
ax
.
plot
(
xx
[
:
3
]
,
yy
[
:
3
]
,
[
z
]
*
3
,
**
kwargs1
)
ax
.
plot
(
xx
[
2
:
]
,
yy
[
2
:
]
,
[
z
]
*
3
,
**
kwargs2
)
for
n
in
range
(
3
)
:
ax
.
plot
(
[
xx
[
n
]
,
xx
[
n
]
]
,
[
yy
[
n
]
,
yy
[
n
]
]
,
[
z
,
z
+
dz
]
,
**
kwargs1
)
ax
.
plot
(
[
xx
[
3
]
,
xx
[
3
]
]
,
[
yy
[
3
]
,
yy
[
3
]
]
,
[
z
,
z
+
dz
]
,
**
kwargs2
)
n
=
int
(
(
dx
+
10
)
/
k
)
+
1
ax
.
set_xticks
(
np
.
linspace
(
0
,
k
*
(
n
-
1
)
,
n
)
)
n
=
int
(
int
(
dy
+
10
)
/
k
)
+
1
ax
.
set_yticks
(
np
.
linspace
(
0
,
k
*
(
n
-
1
)
,
n
)
)
n
=
int
(
int
(
dz
+
10
)
/
k
)
+
1
ax
.
set_zticks
(
np
.
linspace
(
0
,
k
*
(
n
-
1
)
,
n
)
)
ax
.
view_init
(
azim
=
30
,
elev
=
16
)
ax
.
set_box_aspect
(
[
dx
,
dy
,
dz
]
)
plt
.
show
(
)
参考
使用matplotlib绘制3D立方体图
from matplotlib import pyplot as pltimport numpy as npx, y, z = 0, 0, 0dx, dy, dz = 100, 120, 50k = 20fig = plt.figure()ax = plt.axes(projection='3d')# ax.set_axis_off()xx = [x, x+dx, x+dx, x, x]yy = [y+dy, y+dy, y, y, y+dy]kwargs1 = {'linewidth
ax = plt.gca()
ax.set_aspect(1)
的语句,其中gca表示Get Current Axes,用plt.gca()获得当前的Axes对象ax,然后调用ax.set_aspect(1),设置x,y轴等
比例
import numpy as np
import
matplotlib
.pyplot as plt
x = np.random.normal(0,1,5000)
y = np.random.normal(0,1,5000)