Lorenzo Castellino
01/11/2023, 8:21 AMplotly.JSONDataSetfig.update_layout()def plot_loadings(loadings: NDArray) -> go.Figure:
    fig = go.Figure(layout_yaxis_range=[-1, 1], layout_xaxis_range=[-1, 1])
    fig.add_traces(
        go.Scattergl(
            x=loadings[:, 0],
            y=loadings[:, 1],
            mode="markers",
            hovertext=[f"Var{i+1}" for i in range(loadings.shape[0])],
        )
    )
    x_buttons = []
    y_buttons = []
    for i in range(loadings.shape[1]):
        x_buttons.append(
            dict(
                method="update",
                label=f"PC{i + 1}",
                args=[
                    {"x": [loadings[:, i]]},
                ],
            )
        )
        y_buttons.append(
            dict(
                method="update",
                label=f"PC{i + 1}",
                args=[
                    {"y": [loadings[:, i]]},
                ],
            )
        )
    fig.update_layout(
        updatemenus=[
            dict(buttons=x_buttons, direction="up", x=0.5, y=-0.1, active=0),
            dict(
                buttons=y_buttons,
                direction="down",
                x=-0.01,
                y=0.5,
                active=(1 if loadings.shape[1] > 1 else 0),
            ),
        ]
    )
    fig.update_layout(
        {
            "title": {"text": "Loadings Plot", "x": 0.5},
            "width": 1000,
            "height": 1000,
        }
    )
    return figdatajoely
01/11/2023, 9:00 AMTynan
01/11/2023, 11:27 AMupdate_layout"Loadings Plot"Lorenzo Castellino
01/11/2023, 1:01 PM"direction":"down","x":-0.01,"y":0.5}],"title":{"text":"Loadings Plot","x":0.5},"width":1000,"height":1000}}Tynan
01/11/2023, 1:03 PMLorenzo Castellino
01/11/2023, 1:04 PMLorenzo Castellino
01/11/2023, 1:04 PMLorenzo Castellino
01/11/2023, 1:05 PMTynan
01/11/2023, 1:06 PMTynan
01/11/2023, 1:10 PMTynan
01/11/2023, 1:11 PMLorenzo Castellino
01/11/2023, 1:12 PMLorenzo Castellino
01/11/2023, 1:12 PMTynan
01/11/2023, 1:14 PMTynan
01/16/2023, 10:01 AMLorenzo Castellino
01/17/2023, 1:02 PMTynan
01/17/2023, 1:22 PM