如何在Python中保存绘图图形

2024-10-03 21:29:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个代码,其中c_X,c_Y,c_Z,X,Y,Z X_2,Y_2,Z_2,X_4,Y_4,Z_4是点列表(我的数据)

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

for i in range (2):

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

    ax.scatter(c_X,c_Y,c_Z, color = 'midnightblue')
    ax.scatter(X, Y, Z, color = 'mediumaquamarine')
    ax.scatter(X_2,Y_2,Z_2, color = 'cadetblue')
    ax.scatter(X_4,Y_4,Z_4, color = 'cadetblue')
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    ax.set_zlabel('z')
    plt.draw()

最后,我如何保持或获得3个不同图形中的3个绘图


Tags: 数据代码fromimport列表matplotlibasfig
2条回答

按照问题注释中的建议修改代码

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

for i in range (2):

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

    ax.scatter(c_X,c_Y,c_Z, color = 'midnightblue')
    ax.scatter(X, Y, Z, color = 'mediumaquamarine')
    ax.scatter(X_2,Y_2,Z_2, color = 'cadetblue')
    ax.scatter(X_4,Y_4,Z_4, color = 'cadetblue')
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    ax.set_zlabel('z')
plt.show()

我想这正是你想要的

如果只有4个数字,则可以使用:

fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(c_X,c_Y,c_Z, color = 'midnightblue')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()

fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(X, Y, Z, color = 'mediumaquamarine')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()

fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(X_2,Y_2,Z_2, color = 'cadetblue')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()

fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(X_4,Y_4,Z_4, color = 'cadetblue')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()

这样行吗

或者,您可以将阵列合并为一个用于X、一个用于Y和一个用于Z。创建颜色列表并使用循环:

c = ['color1', 'color2', etc]

for i in range(k):
    plt.figure()
    ax = Axes3D(fig)
    ax.scatter(X[i], Y[i], Z[i], color=c[i])
    plt.show()

相关问题 更多 >