对情节在线/离线/袖扣和不同版本感到困惑

Posted

技术标签:

【中文标题】对情节在线/离线/袖扣和不同版本感到困惑【英文标题】:Confused about plotly online / offline / cufflinks and the different versions 【发布时间】:2019-12-05 14:51:16 【问题描述】:

我不明白:

我只想做一个示例图:

a = pd.DataFrame(np.random.randn(100, 4), columns=['a', 'b', 'c', 'd'])
a.iplot(kind='line', y='a')

不是一个非常复杂的例子。

显然,有:

在线绘图(将您的图表上传到他们的系统上) 离线(制作本地图片) 应该与 pandas 数据帧进行交互的袖扣库

实际上整个在线/离线并不清楚,因为一半的网络内容似乎是关于旧版本的。

但是,当我只是使用 plotly 输出一些东西时,我会得到一个带有我的情节的浏览器选项卡。既然它打开一个网址,那是在线还是离线模式?不知道

为此,我必须从 plotly import graph_objs as go 导入,而不是像文档中所写的那样 import plotly.graph_objects as go,因为这不起作用。不太清楚为什么有两个几乎相同名称的不同对象...

进入袖扣,当我复制粘贴样本时(来自这篇文章:https://medium.com/@k***10/day-7-data-visualization-how-to-use-plotly-and-cufflinks-for-interactive-data-visualizations-3a4b85fdd999),它会抱怨缺少文件名/网址。

看起来像这样:

所以,我进入“离线”模式:

cf.go_offline()

嗯,不,同样的错误..

最后,我想要的只是数据框->绘图;并最终进行交互式绘图,这就是我要离开 matplot lib 的原因。

如果有人能解释不同的版本,为什么命名似乎会改变等,以及我如何使用袖扣使数据框->情节工作,我将不胜感激;)

【问题讨论】:

【参考方案1】:

对不起,情况如此混乱,让我试着澄清一下......

我们最近(2019 年 7 月)发布了 plotly 的第 4 版,其行为与第 3 版有些不同。这里是 announcement,这里是 migration guide。 在版本 3 中存在在线与离线的概念,而在版本 4 中,我们试图消除混淆,因此只有离线模式(并且在线模式已移至名为 chart_studio 的不同模块) 在第 4 版中,当您 use fig.show() to render a figure 时,这将在过去称为离线模式下工作:任何地方都不会上传任何内容。 在版本 4 中,我们添加了plotly.graph_objects as an alias for plotly.graph_objs,因为它更容易说。两者的工作原理完全相同,但由于某些原因,某些版本的 PyCharm 不会在新版本上自动完成,我们正在努力修复。 今天使用plotly 从数据框中绘制绘图的最简单方法是use plotly.express 无论是在线模式还是离线模式,图表都必须在浏览器中呈现,要么是标签中的真实图表,要么是笔记本或 IDE 中的内联图表,或者返回 PNG 或 SVG 的 headless one like kaleido or orca。这意味着当您使用版本 4 并打开浏览器窗口时,它处于离线模式,并且没有数据离开您的计算机。 cufflinks 是一个第三方模块,它目前的最新版本(2019 年 7 月)是为使用 plotly 第 3 版而构建的,尚未升级为使用新的第 4 版功能,因此它仍然具有在线的概念与离线。 (2021 年 1 月更新:cufflinks 自 2019 年 9 月左右开始与 Plotly v4 一起使用,但 Plotly Express 已升级为支持类似于 pandas 的 API,就像 cufflinks 一样,现在是推荐的做事方式)李>

希望这可以解决问题。

【讨论】:

这说明了很多!谢谢你的信息,它真的让一切都清楚了

以上是关于对情节在线/离线/袖扣和不同版本感到困惑的主要内容,如果未能解决你的问题,请参考以下文章

对 Visual Basic 版本感到困惑

对如何设置我的 .xcdatamodel 进行版本控制感到困惑

对 jQuery 对象和 JavaScript 变量的不同使用场景感到困惑

对Google Play控制台版权问题感到困惑(第2部分)

nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本

nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本