在 Plotly Python 中更改子图标题位置/方向 [英] Change subplots title position/orientation in Plotly Python

查看:203
本文介绍了在 Plotly Python 中更改子图标题位置/方向的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在 python 中以 plotly 更改子图标题,即旋转 90 度.我很努力,但没有成功.

I need to change subplot title in python plotly, namely, rotate it by 90 degrees. I tried hard but without any success.

这是我的代码

import plotly.offline as pyo
import plotly.graph_objs as go
from plotly import tools

trace1 = go.Bar(
    x=[1, 2, 3],
    y=[10, 11, 12]
)
trace2 = go.Bar(
    x=[1, 2, 3],
    y=[100, 110, 120],
)
trace3 = go.Bar(
    x=[1, 2, 3],
    y=[1000, 1100, 1200],
)

fig = tools.make_subplots(rows=1, cols=3,
                          shared_xaxes=True, shared_yaxes=True,
                          vertical_spacing=0.001,
                          subplot_titles = ('first_title', 'second_title', 'third_title'))

fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)
fig.append_trace(trace3, 1, 3)

fig['layout'].update(height=600, width=600, title='main_title')

pyo.plot(fig, filename='file.html')

所以,我想将 'first_title''second_title''third_title' 旋转 90 度,使它们不重叠在彼此.有没有可能解决这个问题?

So, I want to rotate 'first_title', 'second_title' and 'third_title' by 90 degrees so that they do not overlap at each other. Is it possible to tackle this problem?

推荐答案

您可以简单地在 pyo.plot(fig, filename='file.html') 行之前添加此代码:

you can simply add this code before the pyo.plot(fig, filename='file.html') line:

for annotation in fig['layout']['annotations']: 
    annotation['textangle']=-90

但是,这会导致子情节标题与主标题重叠,因此我建议您将其删除.这是最终代码:

However, this will cause subplot titles overlapping the main title, so I suggest you to remove it. This is the final code:

import plotly.offline as pyo
import plotly.graph_objs as go
from plotly import tools

trace1 = go.Bar(
    x=[1, 2, 3],
    y=[10, 11, 12]
)
trace2 = go.Bar(
    x=[1, 2, 3],
    y=[100, 110, 120],
)
trace3 = go.Bar(
    x=[1, 2, 3],
    y=[1000, 1100, 1200],
)

fig = tools.make_subplots(rows=1, cols=3,
                          shared_xaxes=True, shared_yaxes=True,
                          vertical_spacing=0.001,
                          subplot_titles = ('first_title', 'second_title', 'third_title'))

fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)
fig.append_trace(trace3, 1, 3)

fig['layout'].update(height=600, width=600, title='')

# rotate all the subtitles of 90 degrees
for annotation in fig['layout']['annotations']: 
        annotation['textangle']=-90

pyo.plot(fig, filename='file.html')

这就是你得到的:

这篇关于在 Plotly Python 中更改子图标题位置/方向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆