Google Colab 中的交互式 matplotlib 图
Interactive matplotlib figures in Google Colab
通常在 jupyter notebook 中,我会使用 %matplotlib notebook
magic 来显示交互式 window,但这似乎不适用于 google colab。有没有解决办法,或者在google colab中无法显示交互式windows?
下面是在 Plotly 中创建交互式 iplot()
和在 Google Colab Notebook 上创建交互式 cufflinks()
的示例。使用的功能和答案中的建议 [1,2]
关键似乎是在进行绘图的单元格中包含 configure_plotly_browser_state()
。
下面的代码应该可以工作:
导入库
import datetime
from datetime import date
import pandas as pd
import numpy as np
from plotly import __version__
%matplotlib inline
import plotly.offline as pyo
import plotly.graph_objs as go
from plotly.offline import iplot
import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
cf.go_offline()
将笔记本设置为 false
init_notebook_mode(connected=False)
def configure_plotly_browser_state():
import IPython
display(IPython.core.display.HTML('''
<script src="/static/components/requirejs/require.js"></script>
<script>
requirejs.config({
paths: {
base: '/static/base',
plotly: 'https://cdn.plot.ly/plotly-1.5.1.min.js?noext',
},
});
</script>
'''))
创建示例数据框
数据来源:来自国家气象局的佐治亚州桃树市的年度降雨数据[3]。
df = pd.DataFrame({
'month': ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
'Year_2018': [3.26, 6.11, 4.86, 6.53, 4.45, 3.86, 8.04, 7.59, 1.48, 4.75, 7.27, 11.83],
'Year_1996': [8.26, 3.82, 6.42, 2.91, 2.12, 1.70, 2.14, 4.66, 4.32, 0.89, 3.22, 4.14]
}
)
df
创建交互式 iplot
configure_plotly_browser_state()
df.iplot(kind='line',x='month',y=['Year_2018', 'Year_1996'], color=['white', 'gold'],
theme='solar', mode='markers+lines',title='Annual Rainfall in the city Peachtree City, GA')
plt.show()
[注意:x,y,标题不显示!此刻。]
这似乎是后端问题。在 jupyter 笔记本中,列出不同类型后端的命令是:
%matplotlib --list
输出:
Available matplotlib backends: ['tk', 'gtk', 'gtk3', 'wx', 'qt4', 'qt5', 'qt', 'osx', 'nbagg', 'notebook', 'agg', 'svg', 'pdf', 'ps', 'inline', 'ipympl', 'widget']
但是,对于我的 system/setup,只有 'notebook' 和另一个有效。在 jupyter 实验室中,对我来说,后端的 none 用于交互式图形(甚至是他们推荐的 'inline')。
希望它能减少我搜索和排列 install/re-installs 的时间:))
除了@Nilesh Ingle 的优秀回答,为了解决坐标轴和标题不显示的问题:
在调用函数 configure_plotly_browser_state()
中的脚本时,您应该将 link https://cdn.plot.ly/plotly-1.5.1.min.js?noext
(它指的是旧版本的 plotly,因此不显示轴标签)更改为 https://cdn.plot.ly/plotly-1.5.1.min.js?noext
。
希望这会有所帮助!
对 Nilesh Ingle 出色回答的小修正 https://whosebug.com/a/55435199/13705497
要消除坐标轴和标题不显示的问题 - 您可以更改 link https://cdn.plot.ly/plotly-1.5.1.min.js?noext (this link is the culprit) to https://cdn.plot.ly/plotly-latest.min.js?noext
在函数 configure_plotly_browser_state() 中。祝你有美好的一天!
面对同样的问题(经过大量阅读),我无法获得 %matplotlib ipympl/widget
使用 Colab 的魔力。然而,下一个最佳解决方案确实是使用 Plotly,正如@Nilesh Ingle 在他的详细回复中所概述的那样。
然而,在 Colab 中有一种更简单的方法来获取 Plotly up-and-running。
请参阅此 shared Colab notebook 以获得最基本的示例。
Python 代码也复制如下以供快速参考:
!pip install plotly
import plotly.express as px
SHEET_ID = '153pKW5IZRHwx9mLu_uU-hDSK0D3R19vR71EcgMYHn3I'
df = pd.read_csv('https://docs.google.com/spreadsheets/d/' + SHEET_ID + '/export?format=csv')
fig = px.scatter(data_frame=df, x="x", y="y", width=1000, height=800)
fig.show()
通常在 jupyter notebook 中,我会使用 %matplotlib notebook
magic 来显示交互式 window,但这似乎不适用于 google colab。有没有解决办法,或者在google colab中无法显示交互式windows?
下面是在 Plotly 中创建交互式 iplot()
和在 Google Colab Notebook 上创建交互式 cufflinks()
的示例。使用的功能和答案中的建议 [1,2]
关键似乎是在进行绘图的单元格中包含 configure_plotly_browser_state()
。
下面的代码应该可以工作:
导入库
import datetime
from datetime import date
import pandas as pd
import numpy as np
from plotly import __version__
%matplotlib inline
import plotly.offline as pyo
import plotly.graph_objs as go
from plotly.offline import iplot
import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
cf.go_offline()
将笔记本设置为 false
init_notebook_mode(connected=False)
def configure_plotly_browser_state():
import IPython
display(IPython.core.display.HTML('''
<script src="/static/components/requirejs/require.js"></script>
<script>
requirejs.config({
paths: {
base: '/static/base',
plotly: 'https://cdn.plot.ly/plotly-1.5.1.min.js?noext',
},
});
</script>
'''))
创建示例数据框
数据来源:来自国家气象局的佐治亚州桃树市的年度降雨数据[3]。
df = pd.DataFrame({
'month': ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
'Year_2018': [3.26, 6.11, 4.86, 6.53, 4.45, 3.86, 8.04, 7.59, 1.48, 4.75, 7.27, 11.83],
'Year_1996': [8.26, 3.82, 6.42, 2.91, 2.12, 1.70, 2.14, 4.66, 4.32, 0.89, 3.22, 4.14]
}
)
df
创建交互式 iplot
configure_plotly_browser_state()
df.iplot(kind='line',x='month',y=['Year_2018', 'Year_1996'], color=['white', 'gold'],
theme='solar', mode='markers+lines',title='Annual Rainfall in the city Peachtree City, GA')
plt.show()
[注意:x,y,标题不显示!此刻。]
这似乎是后端问题。在 jupyter 笔记本中,列出不同类型后端的命令是:
%matplotlib --list
输出:
Available matplotlib backends: ['tk', 'gtk', 'gtk3', 'wx', 'qt4', 'qt5', 'qt', 'osx', 'nbagg', 'notebook', 'agg', 'svg', 'pdf', 'ps', 'inline', 'ipympl', 'widget']
但是,对于我的 system/setup,只有 'notebook' 和另一个有效。在 jupyter 实验室中,对我来说,后端的 none 用于交互式图形(甚至是他们推荐的 'inline')。
希望它能减少我搜索和排列 install/re-installs 的时间:))
除了@Nilesh Ingle 的优秀回答,为了解决坐标轴和标题不显示的问题:
在调用函数 configure_plotly_browser_state()
中的脚本时,您应该将 link https://cdn.plot.ly/plotly-1.5.1.min.js?noext
(它指的是旧版本的 plotly,因此不显示轴标签)更改为 https://cdn.plot.ly/plotly-1.5.1.min.js?noext
。
希望这会有所帮助!
对 Nilesh Ingle 出色回答的小修正 https://whosebug.com/a/55435199/13705497
要消除坐标轴和标题不显示的问题 - 您可以更改 link https://cdn.plot.ly/plotly-1.5.1.min.js?noext (this link is the culprit) to https://cdn.plot.ly/plotly-latest.min.js?noext 在函数 configure_plotly_browser_state() 中。祝你有美好的一天!
面对同样的问题(经过大量阅读),我无法获得 %matplotlib ipympl/widget
使用 Colab 的魔力。然而,下一个最佳解决方案确实是使用 Plotly,正如@Nilesh Ingle 在他的详细回复中所概述的那样。
然而,在 Colab 中有一种更简单的方法来获取 Plotly up-and-running。
请参阅此 shared Colab notebook 以获得最基本的示例。
Python 代码也复制如下以供快速参考:
!pip install plotly
import plotly.express as px
SHEET_ID = '153pKW5IZRHwx9mLu_uU-hDSK0D3R19vR71EcgMYHn3I'
df = pd.read_csv('https://docs.google.com/spreadsheets/d/' + SHEET_ID + '/export?format=csv')
fig = px.scatter(data_frame=df, x="x", y="y", width=1000, height=800)
fig.show()