如何在情节中更改注释方向?

How to change annotation orientation in plotly?

假设我有下图:

import numpy as np
import plotly.graph_objs as go

z=np.random.randint(1000, 11000, size=20)
trace=dict(type='scatter',
          x=3+np.random.rand(20),
          y=-2+3*np.random.rand(20),
          mode='markers',
          marker=dict(color= z, 
                      colorscale='RdBu', size=14, colorbar=dict(thickness=20)))

axis_style=dict(zeroline=False, showline=True, mirror=True)
layout=dict(width=550, height=500,
            xaxis=axis_style,
            yaxis=axis_style,
            hovermode='closest',

           )
fig=go.FigureWidget(data=[trace], layout=layout)
fig

现在说我想要颜色栏有一个标题。由于 plotly 目前没有直接的方法来做到这一点,如果我理解正确的话,我正在通过 annotations 来做到这一点,如图 :

layout.update(
    annotations=[dict(
          x=1.12,
          y=1.05,
          align="right",
          valign="top",
          text='Colorbar Title',
          showarrow=False,
          xref="paper",
          yref="paper",
          xanchor="center",
          yanchor="top"
        )
    ]
) 

正如我们所见,颜色条标题出现:

fig=go.FigureWidget(data=[trace], layout=layout)
fig

但是,现在假设我想将颜色条标题沿颜色条横向放置,如下所示:

我该怎么做?

来自 plotly 文档的参数 textangle do it for you. Example。设置 textangle=-90 根据需要旋转注释。

代码:

# import necessaries libraries
import numpy as np
import plotly.offline as py
import plotly.graph_objs as go

z = np.random.randint(1000, 11000, size=20)
# Create a trace
trace = dict(type='scatter',
             x=3+np.random.rand(20),
             y=-2+3*np.random.rand(20),
             mode='markers',
             marker=dict(color=z, colorscale='RdBu',
                         size=14, colorbar=dict(thickness=20)))
# Define axis_style
axis_style = dict(zeroline=False, showline=True, mirror=True)
# Specify layout style
layout = dict(width=550, height=500,
              xaxis=axis_style,
              yaxis=axis_style,
              hovermode='closest',
              )
# Update layout with annotation
layout.update(
    annotations=[dict(
          # Don't specify y position,because yanchor="middle" do it for you
          x=1.22,
          align="right",
          valign="top",
          text='Colorbar Title',
          showarrow=False,
          xref="paper",
          yref="paper",
          xanchor="right",
          yanchor="middle",
          # Parameter textangle allow you to rotate annotation how you want
          textangle=-90
        )
    ]
)
# Create FigureWidget
fig = go.FigureWidget(data=[trace], layout=layout)
# Plot fig
py.plot(fig)

输出: