Skip to content

Commit 8e48b63

Browse files
committed
Update shapes.md
1 parent 21e99b7 commit 8e48b63

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

Diff for: doc/python/shapes.md

+31-7
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jupyter:
2020
name: python
2121
nbconvert_exporter: python
2222
pygments_lexer: ipython3
23-
version: 3.10.8
23+
version: 3.10.10
2424
plotly:
2525
description: How to make SVG shapes in python. Examples of lines, circle, rectangle,
2626
and path.
@@ -917,18 +917,27 @@ fig.show()
917917

918918
*New in 5.15*
919919

920-
Use `texttemplate` to add text with variables to shapes. `texttemplate` uses d3 number and date formatting and supports raw variables, which use the raw data from the shape definition, and some calculated variables. Add a variable with "%{variable}".
920+
Use `texttemplate` to add text with variables to shapes. You have access to raw variables (`x0`, `x1`, `y0`, `y1`), which use raw data values from the shape definition, and the following calculated variables:
921921

922-
This example adds the raw variables `x0` and `y0` to a rectangle and shows the calculated variables `height`, `slope`, `length`, and `width` on three other shapes.
922+
- `xcenter`: (x0 + x1) / 2
923+
- `ycenter`: (y0 + y1) / 2
924+
- `dx`: x1 - x0
925+
- `dy`: y1 - y0
926+
- `width`: abs(x1 - x0)
927+
- `height`: abs(y1 - y0)
928+
- `length` (for lines only): sqrt(dx^2 + dy^2)
929+
- `slope`: (y1 - y0) / (x1 - x0)
923930

924-
For a complete list of available variables, see the [Shape Reference Docs](https://plotly.com/python/reference/layout/shapes/).
931+
`texttemplate` supports d3 number and date formatting.
925932

933+
Add a variable with "%{variable}". This example adds the raw variables `x0` and `y0` to a rectangle and shows the calculated variables `height`, `slope`, `length`, and `width` on three other shapes.
926934

927935
```python
928936
import plotly.graph_objects as go
929937

930938
fig = go.Figure()
931939

940+
932941
fig.add_shape(
933942
type="rect",
934943
fillcolor="MediumSlateBlue",
@@ -983,23 +992,38 @@ fig.show()
983992

984993
*New in 5.15*
985994

986-
Use `texttemplate` to add text with variables to new shapes drawn on the graph. This example figure is configured to allow the user to draw lines and automatically labels each line with its slope. Select **Draw line** in the modebar to try it out.
995+
You can also use `texttemplate` to add text with variables to new shapes drawn on the graph.
996+
997+
In this example, we enable drawing lines on the figure by adding `drawline` to `modeBarButtonsToAdd` in `config`. We then define a `texttemplate` for shapes that shows the calculated variable `dy`. Select **Draw line** in the modebar to try it out.
987998

988999
```python
9891000
import plotly.graph_objects as go
1001+
from plotly import data
1002+
1003+
df = data.stocks()
9901004

9911005
fig = go.Figure(
992-
layout=go.Layout(newshape=dict(label=dict(texttemplate="Slope: %{slope:.3f}")))
1006+
data=go.Scatter(
1007+
x=df.date,
1008+
y=df.GOOG,
1009+
),
1010+
layout=go.Layout(
1011+
yaxis=dict(title="Price in USD"),
1012+
newshape=dict(
1013+
label=dict(texttemplate="Change: %{dy:.2f}")
1014+
),
1015+
title="Google Share Price 2018/2019",
1016+
),
9931017
)
9941018

1019+
9951020
fig.show(
9961021
config={
9971022
"modeBarButtonsToAdd": [
9981023
"drawline",
9991024
]
10001025
}
10011026
)
1002-
10031027
```
10041028

10051029
### Reference

0 commit comments

Comments
 (0)