如何在 Google Colab 交互式中制作 matplotlib 图

Posted

技术标签:

【中文标题】如何在 Google Colab 交互式中制作 matplotlib 图【英文标题】:How can I make a matplotlib plot in Google Colab interactive 【发布时间】:2021-01-18 22:30:09 【问题描述】:

我正在使用 python 和 matplotlib,我正在尝试在 Google Colab 中创建交互式绘图。我可以制作情节,但它是静态的。我当前的代码如下:

%matplotlib notebook
%config InlineBackend.figure_format = 'retina'
from __future__ import print_function, division
import sys
import numpy as np
import astropy.units as u
import matplotlib.pyplot as plt
import os
%matplotlib inline
import json
import glob
import shutil
import math
from mpl_toolkits import mplot3d
fig = plt.figure(figsize=(15, 15))
ax = fig.add_subplot(111, projection='3d')

p_r = 299.9032078
p_de = 20.80420061
p_di = 1.5

ax.scatter(p_di,p_r,p_de, s=200, color='b',marker='o')

sta_r = [297.9021920849609,295.904451838485,295.9023343973089,297.90309565270053,296.90333856407784]
sta_de = [20.844424295419174,20.81360810319505,20.723442484679984,20.824023603726815,20.70437024345076]
sta_pa = [-0.5158962093235283,0.7968902494174,0.5119758027825232,-0.6155926470014295,1.2453997167305746]
sta_di = [1/sp for sp in sta_pa]

ax.scatter(sta_di,sta_r,sta_de, s=200, color='darkorange',marker='o')

plt.show()

【问题讨论】:

【参考方案1】:

您应该删除%matplotlib inline,这会使绘图静态化。您之前输入的 %matplotlib notebook 魔术命令是交互式绘图所需的命令。

编辑: Colab 仅支持%matplotlib inline、see here,因此无法获得交互式 matplotlib 图。 但是,如果您切换到另一个环境 (Jupyter or JupyterLab),请务必使用 %matplotlib notebook。另一方面,交互式plotly 似乎可以工作:Interactive matplotlib figures in Google Colab

【讨论】:

如果我删除 %matplotlib inline 他们我的情节根本不会出现。 目前看来 Colab 只支持%matplotlib inline:github.com/googlecolab/colabtools/issues/…【参考方案2】:

我认为 google collab 的交互模式仍然存在问题,所以最好使用 plotly 来达到这个目的(!pip install plotly)

【讨论】:

以上是关于如何在 Google Colab 交互式中制作 matplotlib 图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 google colab 中运行 matlab .m 文件

如何使用 google colab 在 jupyter notebook 中显示 GIF?

Google Colab 中的交互式 matplotlib 人物

如何在 Google Colab 中做内部链接

如何防止 Google Colab 断开连接?

在 Google Colab 上,来自 Javascript 的 localhost 访问失败