(Mac OSX 10.10.5)
我可以从matplotlib网站mplot 3d复制3D散点图scatter3d_demo的示例代码。py,但打印将渲染为静态图像。我无法点击图形并动态旋转以查看3D绘制的数据。
我已经使用示例代码实现了静态3D绘图-使用(a)来自Terminal的ipython,(B)来自Terminal的ipython notebook,以及(c)从Anaconda启动器启动的ipython notebook。
我想我错过了一些非常基本的假设知识。
在过去的学习中,绘图已经打开了一个GUI Python应用程序,该应用程序具有图形查看器。(下面显示的代码中的解决方案2打开了这个。)也许我需要知道将输出图导出到那个显示方法的代码?(是的,使用%matplotlib(仅)作为第一行,不使用inline或notebook,如下面代码块的注解所示。)
在ipython notebook中:
# These lines are comments
# Initial setup from an online python notebook tutorial is below.
# Note the first line "%matplotlib inline" this is how the tutorial has it.
# Two solutions 1. use: "%matplotlib notebook" graphs appear dynamic in the notebook.
# 2. use: "%matplotlib" (only) graphs appear dynamic in separate window.
# ( 2. is the best solution for detailed graphs/plots. )
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
pd.set_option('html',False)
pd.set_option('max_columns',30)
pd.set_option('max_rows',10)
# What follows is a copy of the 3D plot example code.
# Data is randomly generated so there is no external data import.
def randrange(n, vmin, vmax):
return (vmax-vmin)*np.random.rand(n) + vmin
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 100
for c, m, zl, zh in [('r', 'o', -60, -25), ('b', '^', -30, -5)]:
xs = randrange(n, 23, 50)
ys = randrange(n, 0, 100)
zs = randrange(n, zl, zh)
ax.scatter(xs, ys, zs, c=c, marker=m)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
有人能看出我错过了什么吗?
看Python 33.6文件,第25节。1也许是tkinter包。..
tkinter包(“Tk接口”)是Tk GUI工具包的标准Python接口。Tk和tkinter都可以在大多数Unix平台上使用,也可以在Windows系统上使用。
我认为这与GUI程序的开发有关,所以我不确定这是否相关。(正确,这不是解决方案所需要的。)
6条答案
按热度按时间zte4gxcn1#
使用
%matplotlib notebook
而不是%matplotlib inline
在IPython notebook中获取嵌入式交互图形-这需要最新版本的matplotlib(1.4+)和IPython(3.0+)。brgchamk2#
对于Colab环境,我发现HTML()函数是最有用的:
jvlzgdj93#
对于Windows(Windows 8.1为我),你可以使用
而不是
注意:必须同时执行ALL THREE命令,否则会出现kernal dead错误,笔记本会自动重启。
sc4hvdpw4#
添加后:
如果一切仍然是2D的,你只需要使用这个选项(在第二个图像上的红色)拖动和旋转图形,你的3D图像就会显示出来:
之前:
之后:
Windows 10和Jupyter Notebook 60.2.
d7v8vwbk5#
对于那些更不熟悉的人,比如我,快速回答是:
%matplotlib(上面的导入)(用于新窗口中的交互式图形)
导入matplot。..等等
%matplotlib notebook(用于JupyterNotebook本身内的图形交互
进口等。.
进口等。.
bnlyeluc6#
在Windows上,我可以通过以下命令启动notebook,使绘图以交互模式显示:
如果需要,请关闭笔记本电脑并重新启动。