Plotly (Dash) 勾选标签覆盖
Posted
技术标签:
【中文标题】Plotly (Dash) 勾选标签覆盖【英文标题】:Plotly (Dash) tick label overwriting 【发布时间】:2017-12-10 05:51:11 【问题描述】:我无法获得以下内容来绘制刻度标签
self.months = [2017-01-01', 2017-02-01', ...]
def plot_bar(self):
print self.data
app.layout = html.Div(children=[html.H1(children=''), html.Div(children='Discovered monthly'),
dcc.Graph(
figure=go.Figure(
data = self.data,
layout=go.Layout(
title='Streams', showlegend=True, barmode='stack', margin=go.Margin(l=200, r=0, t=40, b=20),
xaxis=dict(tickvals = self.months, ticktext = self.months, title='months')
)
),
style='height': 300,
id='my-graph')
])
所以基本上我有一个条形图的数字表示,但是当我更改刻度值和刻度标签时,这些数字标签消失了,但是我看不到我应该在那里的日期。我是否缺少显示这些标签的开关?
【问题讨论】:
你有一些样本数据吗? 【参考方案1】:tickvals
必须是刻度所在的 x 轴的实际值,而不是标签。不知道您的实际数据是什么样的,这里是一个带有一些虚构数据的调整示例:
self.months = ['2017-01-01', '2017-02-01', '2017-03-01']
self.data = [
'x': [0, 1, 2], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF',
'x': [0, 1, 2], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal',
]
# X-Axis location for the ticks
self.tickvals = [0, 1, 2]
def plot_bar(self):
app.layout = html.Div(children=[html.H1(children=''), html.Div(children='Discovered monthly'),
dcc.Graph(
figure=go.Figure(
data = self.data,
layout=go.Layout(
title='Streams', showlegend=True, barmode='stack', margin=go.Margin(l=200, r=0, t=40, b=20),
xaxis=dict(tickvals = self.tickvals, ticktext = self.months, title='months')
)
),
style='height': 300,
id='my-graph')
])
注意这如何在 x 轴上将 2017-01-01
映射到对应的值 0
、2017-02-01
到 1
和 2017-03-01
到 2
。我本可以省略2017-02-01
(因此self.tickvals
中的1
),以防会产生太多标签或在这里选择任意值(例如1.5
)来绘制我的标签。正如我们所讨论的条形图,后一个示例缺少有用的应用程序。
【讨论】:
以上是关于Plotly (Dash) 勾选标签覆盖的主要内容,如果未能解决你的问题,请参考以下文章
在 Plotly Dash 图表中放置刻度标签 - Python
在 python 中使用 panda 库和 Dash Plotly 创建带有标签和值的下拉菜单
Plotly:如何使用plotly-dash在一页上创建“输入文本”并在第二页或选项卡上输出(图形)?
Plotly dash dropdown boarder 没有按预期出现