将配置模式添加到 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 离线 - 模式栏的主要内容,如果未能解决你的问题,请参考以下文章
数仓架构的持续演进与发展 — 云原生湖仓一体离线实时一体SaaS模式