Javascript required
Skip to content Skip to sidebar Skip to footer

Shape Package Draw Circle R

Adding Lines and Polygons to Figures¶

As a general dominion, in that location are two ways to add shapes (lines or polygons) to figures:

  1. Trace types in the scatter family (east.chiliad. besprinkle, scatter3d, scattergeo etc) tin can be drawn with mode="lines" and optionally support a fill="self" attribute, and and so can be used to draw open or airtight shapes on figures.
  2. Standalone lines, ellipses and rectangles can be added to figures using fig.add_shape(), and they tin be positioned admittedly inside the figure, or they can exist positioned relative to the axes of 2d cartesian subplots i.eastward. in data coordinates.

Annotation: there are special methods add_hline, add_vline, add_hrect and add_vrect for the common cases of wanting to describe horizontal or vertical lines or rectangles that are fixed to data coordinates in one axis and absolutely positioned in some other.

The differences between these two approaches are that:

  • Traces can optionally support hover labels and can announced in legends.
  • Shapes tin exist positioned absolutely or relative to data coordinates in 2d cartesian subplots but.
  • Traces cannot be positioned absolutely but can be positioned relative to date coordinates in whatever subplot type.
  • Traces likewise support optional text, although in that location is a textual equivalent to shapes in text annotations.

Shape-drawing with Scatter traces¶

At that place are 2 ways to draw filled shapes: scatter traces and layout.shapes which is mostly useful for the 2d subplots, and defines the shape type to exist fatigued, and can be rectangle, circle, line, or path (a custom SVG path). Y'all also can use scatterpolar, scattergeo, scattermapbox to draw filled shapes on whatever kind of subplots. To set up an area to exist filled with a solid colour, you need to define Scatter.fill="toself" that connects the endpoints of the trace into a closed shape. If fashion=line (default value), and so you need to repeat the initial point of a shape at the of the sequence to accept a closed shape.

In [1]:

                                import                plotly.graph_objects                equally                get                fig                =                go                .                Figure                (                go                .                Scatter                (                x                =                [                0                ,                ane                ,                2                ,                0                ],                y                =                [                0                ,                2                ,                0                ,                0                ],                fill                =                "toself"                ))                fig                .                show                ()              

You lot can accept more shapes either past calculation more traces or interrupting the serial with None.

In [2]:

                                import                plotly.graph_objects                equally                go                fig                =                go                .                Effigy                (                get                .                Scatter                (                x                =                [                0                ,                1                ,                2                ,                0                ,                None                ,                3                ,                iii                ,                5                ,                five                ,                3                ],                y                =                [                0                ,                2                ,                0                ,                0                ,                None                ,                0.5                ,                1.5                ,                i.five                ,                0.5                ,                0.five                ],                fill                =                "toself"                ))                fig                .                show                ()              

Shapes in Nuance¶

Dash is the best style to build analytical apps in Python using Plotly figures. To run the app below, run pip install dash, click "Download" to go the lawmaking and run python app.py.

Get started with the official Dash docs and learn how to effortlessly way & deploy apps similar this with Dash Enterprise.

Vertical and Horizontal Lines Positioned Relative to the Centrality Data¶

In [4]:

                                import                plotly.graph_objects                as                go                fig                =                go                .                Figure                ()                # Create scatter trace of text labels                fig                .                add_trace                (                become                .                Besprinkle                (                x                =                [                two                ,                3.five                ,                6                ],                y                =                [                1                ,                1.5                ,                1                ],                text                =                [                "Vertical Line"                ,                "Horizontal Dashed Line"                ,                "Diagonal dotted Line"                ],                style                =                "text"                ,                ))                # Ready axes ranges                fig                .                update_xaxes                (                range                =                [                0                ,                7                ])                fig                .                update_yaxes                (                range                =                [                0                ,                2.5                ])                # Add shapes                fig                .                add_shape                (                type                =                "line"                ,                x0                =                ane                ,                y0                =                0                ,                x1                =                1                ,                y1                =                2                ,                line                =                dict                (                color                =                "RoyalBlue"                ,                width                =                iii                )                )                fig                .                add_shape                (                type                =                "line"                ,                x0                =                2                ,                y0                =                ii                ,                x1                =                5                ,                y1                =                2                ,                line                =                dict                (                color                =                "LightSeaGreen"                ,                width                =                4                ,                dash                =                "dashdot"                ,                )                )                fig                .                add_shape                (                type                =                "line"                ,                x0                =                4                ,                y0                =                0                ,                x1                =                6                ,                y1                =                2                ,                line                =                dict                (                color                =                "MediumPurple"                ,                width                =                4                ,                dash                =                "dot"                ,                )                )                fig                .                update_shapes                (                dict                (                xref                =                'x'                ,                yref                =                'y'                ))                fig                .                show                ()              

Lines Positioned Relative to the Plot & to the Axis Information¶

In [5]:

                                import                plotly.graph_objects                as                go                fig                =                go                .                Figure                ()                # Create scatter trace of text labels                fig                .                add_trace                (                become                .                Scatter                (                10                =                [                2                ,                6                ],                y                =                [                1                ,                i                ],                text                =                [                "Line positioned relative to the plot"                ,                "Line positioned relative to the axes"                ],                mode                =                "text"                ,                ))                # Set axes ranges                fig                .                update_xaxes                (                range                =                [                0                ,                8                ])                fig                .                update_yaxes                (                range                =                [                0                ,                ii                ])                fig                .                add_shape                (                type                =                "line"                ,                xref                =                "x"                ,                yref                =                "y"                ,                x0                =                4                ,                y0                =                0                ,                x1                =                8                ,                y1                =                1                ,                line                =                dict                (                color                =                "LightSeaGreen"                ,                width                =                3                ,                ),                )                fig                .                add_shape                (                type                =                "line"                ,                xref                =                "paper"                ,                yref                =                "paper"                ,                x0                =                0                ,                y0                =                0                ,                x1                =                0.5                ,                y1                =                0.5                ,                line                =                dict                (                color                =                "DarkOrange"                ,                width                =                3                ,                ),                )                fig                .                show                ()              

Rectangles Positioned Relative to the Axis Information¶

In [6]:

                                import                plotly.graph_objects                every bit                become                fig                =                go                .                Figure                ()                fig                .                add_trace                (                go                .                Scatter                (                x                =                [                i.5                ,                four.v                ],                y                =                [                0.75                ,                0.75                ],                text                =                [                "Unfilled Rectangle"                ,                "Filled Rectangle"                ],                mode                =                "text"                ,                ))                # Gear up axes properties                fig                .                update_xaxes                (                range                =                [                0                ,                7                ],                showgrid                =                False                )                fig                .                update_yaxes                (                range                =                [                0                ,                3.5                ])                # Add shapes                fig                .                add_shape                (                blazon                =                "rect"                ,                x0                =                i                ,                y0                =                1                ,                x1                =                2                ,                y1                =                3                ,                line                =                dict                (                color                =                "RoyalBlue"                ),                )                fig                .                add_shape                (                type                =                "rect"                ,                x0                =                3                ,                y0                =                1                ,                x1                =                6                ,                y1                =                2                ,                line                =                dict                (                color                =                "RoyalBlue"                ,                width                =                two                ,                ),                fillcolor                =                "LightSkyBlue"                ,                )                fig                .                update_shapes                (                dict                (                xref                =                'x'                ,                yref                =                'y'                ))                fig                .                show                ()              

Rectangle Positioned Relative to the Plot & to the Axis Information¶

In [7]:

                                import                plotly.graph_objects                every bit                get                fig                =                go                .                Effigy                ()                # Create scatter trace of text labels                fig                .                add_trace                (                go                .                Scatter                (                x                =                [                1.5                ,                3                ],                y                =                [                2.v                ,                2.five                ],                text                =                [                "Rectangle reference to the plot"                ,                "Rectangle reference to the axes"                ],                mode                =                "text"                ,                ))                # Ready axes properties                fig                .                update_xaxes                (                range                =                [                0                ,                4                ])                fig                .                update_yaxes                (                range                =                [                0                ,                4                ])                # Add shapes                fig                .                add_shape                (                type                =                "rect"                ,                xref                =                "x"                ,                yref                =                "y"                ,                x0                =                2.5                ,                y0                =                0                ,                x1                =                3.five                ,                y1                =                two                ,                line                =                dict                (                color                =                "RoyalBlue"                ,                width                =                3                ,                ),                fillcolor                =                "LightSkyBlue"                ,                )                fig                .                add_shape                (                type                =                "rect"                ,                xref                =                "paper"                ,                yref                =                "paper"                ,                x0                =                0.25                ,                y0                =                0                ,                x1                =                0.five                ,                y1                =                0.v                ,                line                =                dict                (                color                =                "LightSeaGreen"                ,                width                =                3                ,                ),                fillcolor                =                "PaleTurquoise"                ,                )                fig                .                bear witness                ()              

A Rectangle Placed Relative to the Axis Position and Length¶

A shape tin can exist placed relative to an axis's position on the plot by calculation the cord ' domain' to the axis reference in the xref or yref attributes for shapes. The following code places a rectangle that starts at threescore% and ends at seventy% along the x-axis, starting from the left, and starts at fourscore% and ends at xc% along the y-axis, starting from the lesser.

In [8]:

                                import                plotly.graph_objects                as                go                import                plotly.express                as                px                df                =                px                .                data                .                wind                ()                fig                =                px                .                scatter                (                df                ,                y                =                "frequency"                )                fig                .                update_layout                (                xaxis                =                dict                (                domain                =                [                0                ,                0.5                ]),                yaxis                =                dict                (                domain                =                [                0.25                ,                0.75                ]))                # Add a shape whose x and y coordinates refer to the domains of the x and y axes                fig                .                add_shape                (                type                =                "rect"                ,                xref                =                "x domain"                ,                yref                =                "y domain"                ,                x0                =                0.6                ,                x1                =                0.7                ,                y0                =                0.8                ,                y1                =                0.9                ,                )                fig                .                bear witness                ()              

In [nine]:

                                import                plotly.graph_objects                equally                go                fig                =                go                .                Effigy                ()                # Add scatter trace for line                fig                .                add_trace                (                become                .                Scatter                (                x                =                [                "2015-02-01"                ,                "2015-02-02"                ,                "2015-02-03"                ,                "2015-02-04"                ,                "2015-02-05"                ,                "2015-02-06"                ,                "2015-02-07"                ,                "2015-02-08"                ,                "2015-02-09"                ,                "2015-02-10"                ,                "2015-02-11"                ,                "2015-02-12"                ,                "2015-02-13"                ,                "2015-02-14"                ,                "2015-02-fifteen"                ,                "2015-02-sixteen"                ,                "2015-02-17"                ,                "2015-02-xviii"                ,                "2015-02-19"                ,                "2015-02-20"                ,                "2015-02-21"                ,                "2015-02-22"                ,                "2015-02-23"                ,                "2015-02-24"                ,                "2015-02-25"                ,                "2015-02-26"                ,                "2015-02-27"                ,                "2015-02-28"                ],                y                =                [                -                14                ,                -                17                ,                -                8                ,                -                iv                ,                -                vii                ,                -                10                ,                -                12                ,                -                14                ,                -                12                ,                -                7                ,                -                11                ,                -                7                ,                -                18                ,                -                14                ,                -                14                ,                -                16                ,                -                13                ,                -                vii                ,                -                viii                ,                -                14                ,                -                8                ,                -                3                ,                -                nine                ,                -                ix                ,                -                iv                ,                -                xiii                ,                -                9                ,                -                vi                ],                mode                =                "lines"                ,                name                =                "temperature"                ))                # Add together shape regions                fig                .                add_vrect                (                x0                =                "2015-02-04"                ,                x1                =                "2015-02-06"                ,                fillcolor                =                "LightSalmon"                ,                opacity                =                0.5                ,                layer                =                "below"                ,                line_width                =                0                ,                ),                fig                .                add_vrect                (                x0                =                "2015-02-twenty"                ,                x1                =                "2015-02-22"                ,                fillcolor                =                "LightSalmon"                ,                opacity                =                0.5                ,                layer                =                "beneath"                ,                line_width                =                0                ,                )                fig                .                show                ()              

Circles Positioned Relative to the Axis Data¶

In [10]:

                                import                plotly.graph_objects                as                go                fig                =                become                .                Figure                ()                # Create scatter trace of text labels                fig                .                add_trace                (                go                .                Besprinkle                (                x                =                [                1.5                ,                three.5                ],                y                =                [                0.75                ,                2.v                ],                text                =                [                "Unfilled Circumvolve"                ,                "Filled Circumvolve"                ],                mode                =                "text"                ,                ))                # Ready axes properties                fig                .                update_xaxes                (                range                =                [                0                ,                iv.v                ],                zeroline                =                False                )                fig                .                update_yaxes                (                range                =                [                0                ,                4.5                ])                # Add together circles                fig                .                add_shape                (                blazon                =                "circle"                ,                xref                =                "x"                ,                yref                =                "y"                ,                x0                =                i                ,                y0                =                i                ,                x1                =                3                ,                y1                =                3                ,                line_color                =                "LightSeaGreen"                ,                )                fig                .                add_shape                (                type                =                "circle"                ,                xref                =                "x"                ,                yref                =                "y"                ,                fillcolor                =                "PaleTurquoise"                ,                x0                =                3                ,                y0                =                3                ,                x1                =                4                ,                y1                =                4                ,                line_color                =                "LightSeaGreen"                ,                )                # Set figure size                fig                .                update_layout                (                width                =                800                ,                height                =                800                )                fig                .                show                ()              

Highlighting Clusters of Scatter Points with Circle Shapes¶

In [11]:

                                import                plotly.graph_objects                as                go                import                numpy                equally                np                np                .                random                .                seed                (                1                )                # Generate data                x0                =                np                .                random                .                normal                (                2                ,                0.45                ,                300                )                y0                =                np                .                random                .                normal                (                2                ,                0.45                ,                300                )                x1                =                np                .                random                .                normal                (                six                ,                0.4                ,                200                )                y1                =                np                .                random                .                normal                (                6                ,                0.4                ,                200                )                # Create figure                fig                =                get                .                Figure                ()                # Add scatter traces                fig                .                add_trace                (                get                .                Besprinkle                (                10                =                x0                ,                y                =                y0                ,                mode                =                "markers"                ))                fig                .                add_trace                (                go                .                Scatter                (                x                =                x1                ,                y                =                y1                ,                mode                =                "markers"                ))                # Add shapes                fig                .                add_shape                (                blazon                =                "circle"                ,                xref                =                "x"                ,                yref                =                "y"                ,                x0                =                min                (                x0                ),                y0                =                min                (                y0                ),                x1                =                max                (                x0                ),                y1                =                max                (                y0                ),                opacity                =                0.2                ,                fillcolor                =                "blueish"                ,                line_color                =                "bluish"                ,                )                fig                .                add_shape                (                type                =                "circumvolve"                ,                xref                =                "x"                ,                yref                =                "y"                ,                x0                =                min                (                x1                ),                y0                =                min                (                y1                ),                x1                =                max                (                x1                ),                y1                =                max                (                y1                ),                opacity                =                0.2                ,                fillcolor                =                "orange"                ,                line_color                =                "orangish"                ,                )                # Hide legend                fig                .                update_layout                (                showlegend                =                False                )                fig                .                show                ()              

Venn Diagram with Circle Shapes¶

In [12]:

                                import                plotly.graph_objects                as                go                fig                =                go                .                Effigy                ()                # Create besprinkle trace of text labels                fig                .                add_trace                (                get                .                Scatter                (                ten                =                [                1                ,                1.75                ,                2.five                ],                y                =                [                1                ,                i                ,                1                ],                text                =                [                "$A$"                ,                "$A+B$"                ,                "$B$"                ],                manner                =                "text"                ,                textfont                =                dict                (                color                =                "blackness"                ,                size                =                18                ,                family                =                "Arail"                ,                )                ))                # Update axes backdrop                fig                .                update_xaxes                (                showticklabels                =                Faux                ,                showgrid                =                False                ,                zeroline                =                False                ,                )                fig                .                update_yaxes                (                showticklabels                =                False                ,                showgrid                =                False                ,                zeroline                =                Imitation                ,                )                # Add circles                fig                .                add_shape                (                type                =                "circle"                ,                line_color                =                "bluish"                ,                fillcolor                =                "blue"                ,                x0                =                0                ,                y0                =                0                ,                x1                =                two                ,                y1                =                two                )                fig                .                add_shape                (                type                =                "circumvolve"                ,                line_color                =                "gray"                ,                fillcolor                =                "gray"                ,                x0                =                1.5                ,                y0                =                0                ,                x1                =                three.5                ,                y1                =                2                )                fig                .                update_shapes                (                opacity                =                0.3                ,                xref                =                "x"                ,                yref                =                "y"                )                fig                .                update_layout                (                margin                =                dict                (                l                =                20                ,                r                =                20                ,                b                =                100                ),                superlative                =                600                ,                width                =                800                ,                plot_bgcolor                =                "white"                )                fig                .                show                ()              

Calculation Shapes to Subplots¶

Hither we employ the different axes (x1, x2) created past make_subplots as reference in order to draw shapes in effigy subplots.

In [13]:

                                import                plotly.graph_objects                every bit                become                from                plotly.subplots                import                make_subplots                # Create Subplots                fig                =                make_subplots                (                rows                =                two                ,                cols                =                2                )                fig                .                add_trace                (                get                .                Scatter                (                10                =                [                2                ,                half-dozen                ],                y                =                [                1                ,                one                ]),                row                =                i                ,                col                =                1                )                fig                .                add_trace                (                go                .                Bar                (                x                =                [                1                ,                2                ,                3                ],                y                =                [                iv                ,                5                ,                6                ]),                row                =                i                ,                col                =                two                )                fig                .                add_trace                (                become                .                Scatter                (                x                =                [                10                ,                xx                ],                y                =                [                40                ,                50                ]),                row                =                ii                ,                col                =                1                )                fig                .                add_trace                (                go                .                Bar                (                ten                =                [                11                ,                13                ,                15                ],                y                =                [                8                ,                eleven                ,                twenty                ]),                row                =                two                ,                col                =                two                )                # Add shapes                fig                .                update_layout                (                shapes                =                [                dict                (                type                =                "line"                ,                xref                =                "ten"                ,                yref                =                "y"                ,                x0                =                three                ,                y0                =                0.5                ,                x1                =                five                ,                y1                =                0.8                ,                line_width                =                3                ),                dict                (                type                =                "rect"                ,                xref                =                "x2"                ,                yref                =                'y2'                ,                x0                =                four                ,                y0                =                ii                ,                x1                =                5                ,                y1                =                half-dozen                ),                dict                (                blazon                =                "rect"                ,                xref                =                "x3"                ,                yref                =                "y3"                ,                x0                =                10                ,                y0                =                20                ,                x1                =                15                ,                y1                =                thirty                ),                dict                (                type                =                "circumvolve"                ,                xref                =                "x4"                ,                yref                =                "y4"                ,                x0                =                five                ,                y0                =                12                ,                x1                =                10                ,                y1                =                18                )])                fig                .                show                ()              

Adding the Same Shapes to Multiple Subplots¶

The same shape tin be added to multiple facets by using the 'all' keyword in the row and col arguments. For example

In [14]:

                                import                plotly.express                as                px                df                =                px                .                data                .                tips                ()                fig                =                px                .                besprinkle                (                df                ,                x                =                "total_bill"                ,                y                =                "tip"                ,                facet_row                =                "smoker"                ,                facet_col                =                "sex"                )                # Adds a rectangle to all facets                fig                .                add_shape                (                dict                (                type                =                "rect"                ,                x0                =                25                ,                x1                =                35                ,                y0                =                4                ,                y1                =                6                ,                line_color                =                "purple"                ),                row                =                "all"                ,                col                =                "all"                ,                )                # Adds a line to all the rows of the second cavalcade                fig                .                add_shape                (                dict                (                type                =                "line"                ,                x0                =                20                ,                x1                =                25                ,                y0                =                v                ,                y1                =                6                ,                line_color                =                "yellow"                ),                row                =                "all"                ,                col                =                2                )                # Adds a circle to all the columns of the outset row                fig                .                add_shape                (                dict                (                blazon                =                "circumvolve"                ,                x0                =                ten                ,                y0                =                2                ,                x1                =                20                ,                y1                =                vii                ),                row                =                1                ,                col                =                "all"                ,                line_color                =                "green"                )                fig                .                show                ()              

SVG Paths¶

In [15]:

                                import                plotly.graph_objects                equally                get                fig                =                get                .                Effigy                ()                # Create scatter trace of text labels                fig                .                add_trace                (                go                .                Scatter                (                x                =                [                2                ,                1                ,                eight                ,                eight                ],                y                =                [                0.25                ,                nine                ,                two                ,                six                ],                text                =                [                "Filled Triangle"                ,                "Filled Polygon"                ,                "Quadratic Bezier Curves"                ,                "Cubic Bezier Curves"                ],                mode                =                "text"                ,                ))                # Update axes properties                fig                .                update_xaxes                (                range                =                [                0                ,                9                ],                zeroline                =                False                ,                )                fig                .                update_yaxes                (                range                =                [                0                ,                xi                ],                zeroline                =                False                ,                )                # Add shapes                fig                .                update_layout                (                shapes                =                [                # Quadratic Bezier Curves                dict                (                type                =                "path"                ,                path                =                "G 4,iv Q 6,0 viii,4"                ,                line_color                =                "RoyalBlue"                ,                ),                # Cubic Bezier Curves                dict                (                blazon                =                "path"                ,                path                =                "M 1,four C 2,eight 6,4 8,8"                ,                line_color                =                "MediumPurple"                ,                ),                # filled Triangle                dict                (                type                =                "path"                ,                path                =                " M 1 1 Fifty 1 three L four 1 Z"                ,                fillcolor                =                "LightPink"                ,                line_color                =                "Reddish"                ,                ),                # filled Polygon                dict                (                blazon                =                "path"                ,                path                =                " Thou 3,7 L2,8 L2,nine L3,10, L4,ten L5,ix L5,8 L4,7 Z"                ,                fillcolor                =                "PaleTurquoise"                ,                line_color                =                "LightSeaGreen"                ,                ),                ]                )                fig                .                testify                ()              

Drawing shapes with a Mouse on Cartesian plots¶

introduced in plotly 4.7

You can create layout shapes programmatically, but you can as well draw shapes manually past setting the dragmode to one of the shape-drawing modes: 'drawline','drawopenpath', 'drawclosedpath', 'drawcircle', or 'drawrect'. If you need to switch between different shape-drawing or other dragmodes (panning, selecting, etc.), modebar buttons can exist added in the config to select the dragmode. If you switch to a different dragmode such as pan or zoom, you will need to select the drawing tool in the modebar to go back to shape cartoon.

This shape-drawing feature is especially interesting for annotating graphs, in item paradigm traces or layout images.

Once yous have drawn shapes, you lot tin select and modify an existing shape past clicking on its boundary (note the arrow pointer). Its fillcolor turns to pink to highlight the activated shape and then you tin

  • drag and resize information technology for lines, rectangles and circles/ellipses
  • elevate and move individual vertices for closed paths
  • move individual vertices for open up paths.

An activated shape is deleted by clicking on the eraseshape push.

Drawing or modifying a shape triggers a relayout effect, which can be captured past a callback inside a Dash awarding.

In [sixteen]:

                                import                plotly.graph_objects                as                go                fig                =                go                .                Figure                ()                text                =                "Click and elevate hither <br> to draw a rectangle <br><br> or select another shape <br>in the modebar"                fig                .                add_annotation                (                ten                =                0.five                ,                y                =                0.5                ,                text                =                text                ,                xref                =                "paper"                ,                yref                =                "paper"                ,                showarrow                =                False                ,                font_size                =                20                )                # shape defined programatically                fig                .                add_shape                (                editable                =                True                ,                x0                =-                1                ,                x1                =                0                ,                y0                =                ii                ,                y1                =                3                ,                xref                =                'ten'                ,                yref                =                'y'                )                # define dragmode and add modebar buttons                fig                .                update_layout                (                dragmode                =                'drawrect'                )                fig                .                show                (                config                =                {                'modeBarButtonsToAdd'                :[                'drawline'                ,                'drawopenpath'                ,                'drawclosedpath'                ,                'drawcircle'                ,                'drawrect'                ,                'eraseshape'                ]})              

Manner of user-drawn shapes¶

The layout newshape aspect controls the visual appearance of new shapes fatigued by the user. newshape attributes accept the aforementioned names as layout shapes.

Note on shape opacity: having a new shape's opacity > 0.5 makes information technology possible to activate a shape by clicking inside the shape (for opacity <= 0.5 you have to click on the border of the shape), simply you lot cannot outset a new shape within an existing shape (which is possible for an opacity <= 0.five).

In [17]:

                                import                plotly.graph_objects                as                go                fig                =                go                .                Effigy                ()                text                =                "Click and drag<br> to depict a rectangle <br><br> or select another shape <br>in the modebar"                fig                .                add_annotation                (                x                =                0.5                ,                y                =                0.5                ,                text                =                text                ,                xref                =                "paper"                ,                yref                =                "paper"                ,                showarrow                =                False                ,                font_size                =                xx                )                # shape defined programatically                fig                .                add_shape                (                line_color                =                'yellow'                ,                fillcolor                =                'turquoise'                ,                opacity                =                0.4                ,                editable                =                True                ,                x0                =                0                ,                x1                =                1                ,                y0                =                2                ,                y1                =                3                ,                xref                =                'x'                ,                yref                =                'y'                )                fig                .                update_layout                (                dragmode                =                'drawrect'                ,                # style of new shapes                newshape                =                dict                (                line_color                =                'yellowish'                ,                fillcolor                =                'turquoise'                ,                opacity                =                0.5                ))                fig                .                show                (                config                =                {                'modeBarButtonsToAdd'                :[                'drawline'                ,                'drawopenpath'                ,                'drawclosedpath'                ,                'drawcircle'                ,                'drawrect'                ,                'eraseshape'                ]})              

What Almost Dash?¶

Dash is an open-source framework for building analytical applications, with no Javascript required, and it is tightly integrated with the Plotly graphing library.

Learn nigh how to install Dash at https://nuance.plot.ly/installation.

Everywhere in this page that y'all see fig.show(), y'all tin can display the same figure in a Nuance awarding by passing it to the figure statement of the Graph component from the built-in dash_core_components package like this:

                                import                plotly.graph_objects                as                go                # or plotly.express equally px                fig                =                go                .                Figure                ()                # or any Plotly Limited office e.g. px.bar(...)                # fig.add_trace( ... )                # fig.update_layout( ... )                import                dash                import                dash_core_components                as                dcc                import                dash_html_components                as                html                app                =                nuance                .                Nuance                ()                app                .                layout                =                html                .                Div                ([                dcc                .                Graph                (                figure                =                fig                )                ])                app                .                run_server                (                debug                =                True                ,                use_reloader                =                Faux                )                # Turn off reloader if inside Jupyter              

weindorferhanceek.blogspot.com

Source: https://plotly.com/python/shapes/