在 Plotly Dash 图表中放置刻度标签 - Python
Posted
技术标签:
【中文标题】在 Plotly Dash 图表中放置刻度标签 - Python【英文标题】:Place tick label inside in a Plotly Dash chart - Python 【发布时间】:2021-10-25 23:20:42 【问题描述】:在我的 Plotly Dash 环境中,我遇到了在图表内放置分类刻度标签的问题。
这是应用程序:
import dash
import dash_core_components as dcc
import dash_html_components as html
import dash_bootstrap_components as dbc
import plotly.express as px
animals = ['giraffes', 'orangutans', 'monkeys']
fig = px.bar(x=[20, 14, 23], y=animals)
fig.update_layout(yaxis='ticklabelposition': 'inside')
fig.update_xaxes(range=[0, 50])
chart_bar = dcc.Graph(figure=fig)
app = dash.Dash(__name__,
external_stylesheets=[dbc.themes.BOOTSTRAP],
meta_tags=["name": "viewport",
"content": "width=device-width, initial-scale=1"])
app.layout = html.Div([
dbc.Row([
dbc.Col(children=chart_bar, md=6)],
className='app-body')
],
)
if __name__ == '__main__':
app.run_server(debug=True)
这是结果
似乎 yaxis='ticklabelposition': 'inside' 不起作用
如果我在应用程序的外部执行相同的图表,它工作得很好。在这里,由完全相同的脚本生成。
似乎某些 Plotly 参数在 Dash 应用程序中不起作用。还是我错了? 我错过了什么?有没有办法把标签放在里面,在条上?
【问题讨论】:
【参考方案1】:似乎是某些 Plotly 版本的错误。我正在为 Plotly 版本 5.1.0
和 5.2.2
运行您的确切代码,并在 Dash 应用程序中获得这些结果:
情节 1 - Plotly 5.1.0
:
情节 2 Plotly 5.2.2
:
但是,在 Dash 之外运行相同的代码时,我没有收到 Plot 1
。所以我怀疑原因是 Dash 和 Plotly 之间的混合版本。
如果需要进一步调查,请提供有关您的版本的信息。运行:
import dash
import plotly
print(dash.__version__)
print(plotly.__version__)
【讨论】:
有趣!谢谢你。我正在运行 Dash 1.13.4 和 Plotly 4.14.3 @Anton 确实很有趣。请考虑同时尝试5.1.0
和5.2.2
,看看我们是否在 Dash 和 Plotly 上得到了匹配的结果。
我会试试看。谢谢!
所以在我的例子中:Plotly 5.1.0 - 它在没有 Dash 的情况下正常工作并且 在 Dash 中无法工作 Plotly 5.2.1 - 相同 - 它工作正常没有 Dash 并且 没有在 Dash 中工作 最后我将 Dash 更新到了 1.21.0 版本 - 它在两种设置(在 Dash 内部和外部)中都按预期工作以上是关于在 Plotly Dash 图表中放置刻度标签 - Python的主要内容,如果未能解决你的问题,请参考以下文章