繁体   English   中英

为什么我不能在桌面上用 Python 创建 3d 散点图?

[英]Why can't I create a 3d scatter plot in Python on my desktop?

我正在尝试在 python 中使用 3D 散点图对象。 我已经在我的笔记本电脑上成功地做到了这一点。 但是,我无法将代码复制并粘贴到我的桌面上。 当我这样做时,我收到一个错误。 我将在下面附上给我带来麻烦的代码部分。 我正在使用 Anaconda 来运行我的代码。 我会注意到我的笔记本电脑使用 python 3.6,我的台式机使用 3.7,但我不认为这是造成它的原因。 我得到的错误如下。 “值错误:未知投影‘3d’”

import numpy as np
from scipy import optimize
import time
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt
import pandas as pd
from sklearn import preprocessing
from sklearn.svm import SVR
import multiprocessing as mp
from obj_class import objective_class
import pdb
import scipy.integrate as integrate

def create3d():
    grid_matrix = np.array([[1,1,1,1],[2,2,2,2],[3,3,3,3]])

    fig = plt.figure()
    ax = plt.axes(projection='3d')
    p = ax.scatter3D(grid_matrix[:,0],grid_matrix[:,1] ,grid_matrix[:,2] , c=grid_matrix[:,3], cmap='viridis')
    cb = fig.colorbar(p) 
    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')
    ax.set_title(' Scatter Plot')

为了在matplotlib <= 3.1使用3d投影,您需要导入axes3d ,即

from mpl_toolkits.mplot3d import Axes3D

matplotlib >= 3.2 ,不需要额外的导入。 因此,您可能在两台计算机上运行不同的 matplotlib 版本。

如果您在 iPython 内核(例如 Jupyter notebook)中运行您的代码,那么您只需执行每次导入一次,并且您将能够运行依赖于所述导入的任何代码,直到内核关闭。 但是,为了以自包含的方式运行脚本,您需要在脚本中包含该导入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM