Part of the Plotly Learning Log series:
- Layout Setting for PlotlyThis post!
Table of Contents
Overview
This post talks about the layout setting for Plotly. Specifically, the layout setting can be evoked by
python1layout = go.Layout(**kwargs)
2fig = go.Figure(data=data, layout=layout)
3# i.e. plot(fig)
where **kwargs
is a series of settings.
Canva Size
The canva size can be set by:
width
. In pixels (e.g.width=800
)height
. In pixels (e.g.height=600
)autosize
. A boolean. IfTrue
, the canva will be resized automatically to fit dimensions that are not explicitly set.margin
. A dictionary with keysl
,r
,t
,b
,pad
(e.g.margin=dict(l=20, r=20, t=20, b=20, pad=4)
)
Plot in specific area
This can be combined to create multiple plots of different sizes in the same figure.
In trace
, the xaxis
and yaxis
can be set to x1
, x2
(“x” + integer) and y1
, y2
(“y” + integer) to specify the plot area.
In layout
, set a group of xaxis
and yaxis
to match those in trace
. Specifically,
trace |
layout |
---|---|
xaxis1 or xaxis |
x1 or x |
xaxis2 |
x2 |
xaxisN |
xN |
Similar for yaxis |
Similar for `y`` |
In layout
these axis should be anchored to its counterpart in trace
by domain
like
1trace = go.Scatter(
2 ...
3 xaxis='x2',
4 yaxis='y2'
5)
6layout = go.Layout(
7 xaxis2=dict(
8 domain=[0.6, 1],
9 anchor='y2' # Note that it is 'y2' not 'x2'
10 ),
11 yaxis2=dict(
12 domain=[0.6, 1],
13 anchor='x2' # Note that it is 'x2' not 'y2'
14 )
15)
Code Example
Canva Size (Example)
python1layout = go.Layout(
2 height=2000,
3 autosize=True,
4 margin=dict(l=20, r=20, t=20, b=20, pad=4)
5)
This should enable a canvas that has fixed height and variable width. (e.g. Zooming out in browser -> both dim pixels increase -> (But height pixels fixed) Plot are “longers”)
Plot in specific area (Example)
python 1trace1 = go.Scatter(
2 x=[1, 2, 3],
3 y=[4, 5, 6],
4 xaxis='x1',
5 yaxis='y1'
6)
7trace2 = go.Scatter(
8 x=[1, 2, 3],
9 y=[4, 5, 6],
10 xaxis='x2',
11 yaxis='y2'
12)
13layout = go.Layout(
14 xaxis1=dict(
15 domain=[0, 0.5],
16 anchor='y1'
17 ),
18 yaxis1=dict(
19 domain=[0, 0.5],
20 anchor='x1'
21 ),
22 xaxis2=dict(
23 domain=[0.5, 1],
24 anchor='y2'
25 ),
26 yaxis2=dict(
27 domain=[0.5, 1],
28 anchor='x2'
29 )
30)
View My Interactive Chart
ddsfsdd