将配置模式添加到 Plotly.Py 离线 - 模式栏

Posted

技术标签:

【中文标题】将配置模式添加到 Plotly.Py 离线 - 模式栏【英文标题】:Adding config modes to Plotly.Py offline - modebar 【发布时间】:2016-08-01 23:16:43 【问题描述】:

Plotly.js 包含配置 ModeBar 所需的所有参数,它允许人们从显示栏中删除选项(例如在线编辑图形的链接)。但是,这似乎没有在 Plotly.py API 中实现。在js版本中:

Plotly.newPlot('myDiv', data, layout, displayModeBar: false); 完全删除模式栏。Plotly.newPlot('myDiv', data, layout, displaylogo: false, modeBarButtonsToRemove: ['sendDataToCloud','hoverCompareCartesian']) 允许指定要删除的每个按钮。

我已经编辑了这个,因为我找到了一个解决方法......请参阅我在下面发布的答案。对于那些想要使用其他参数的人来说可以派上用场。

【问题讨论】:

【参考方案1】:

这是紧凑的代码。解决方法中不需要。

plot(figure, filename='my_chart.html', show_link=False,
     config=dict(displaylogo=False,
                 modeBarButtonsToRemove=['sendDataToCloud']))

【讨论】:

【参考方案2】:

打开 HTML 文件,搜索 modeBarButtonsToRemove:[] 然后替换为您要删除的按钮,我的目的是 modeBarButtonsToRemove:['sendDataToCloud']

要删除 Plotly 徽标和链接,请搜索 displaylogo:!0 并替换为 displaylogo:!1

这是一个使用 Python 的演示:

from plotly.offline import plot
import plotly.graph_objs as go
import webbrowser
import numpy as np
import pandas as pd

# generate your Plotly graph here

N = 500
y = np.linspace(0, 1, N)
x = np.random.randn(N)
df = pd.DataFrame('x': x, 'y': y)
data = [go.Histogram(x=df['x'])]

# plot it for offline editing
HTMLlink = plot(data, show_link=False, auto_open=False)[7:] #remove the junk characters
# now need to open the HTML file
with open(HTMLlink, 'r') as file :
  tempHTML = file.read()
# Replace the target strings
tempHTML = tempHTML.replace('displaylogo:!0', 'displaylogo:!1')
tempHTML = tempHTML.replace('modeBarButtonsToRemove:[]', 'modeBarButtonsToRemove:["sendDataToCloud"]')
with open(HTMLlink, 'w') as file:
  file.write(tempHTML)
del tempHTML

webbrowser.open(HTMLlink)

【讨论】:

【参考方案3】:

很酷的解决方法。这里有一个 PR:https://github.com/plotly/plotly.py/pull/410。 然而,关于实施存在一些争论,因此它没有被合并。

【讨论】:

如果您喜欢它,请随意投票 :) 请注意,您可以删除此处列出的所有按钮:github.com/plotly/plotly.js/blob/master/src/components/modebar/… 在modeBarButtons. 下搜索,只需将它们插入到["sendDataToCloud","pan2d"] 上方的行中即可.

以上是关于将配置模式添加到 Plotly.Py 离线 - 模式栏的主要内容,如果未能解决你的问题,请参考以下文章

在没有在线 plotly 帐户的情况下使用 plotly

数仓架构的持续演进与发展 — 云原生湖仓一体离线实时一体SaaS模式

yum仓库之离线状态的yum安装

将 gis 地图加载到离线 anylogic 计算机

数仓架构的持续演进与发展 — 云原生湖仓一体离线实时一体SaaS模式

Plotly.py:强制轴单位为千 (k) 而不是百万 (M)