File size: 1,720 Bytes
dde6bca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import plotly.graph_objects as go
import numpy as np
import pandas as pd

data = {
    "x": 3*np.random.rand(512),
    "y": np.random.rand(512), 
    "z": np.random.random(512), 
}

df = pd.DataFrame(data)

def get_label(z):
    if z<0.25:
        return "smol dot"
    if z<0.5:
        return "ok-ish dot"
    if z<0.75:
        return "a dot"
    else:
        return "biiig dot"

df["label"] = df["z"].apply(get_label)

df["z"] = (df["z"]+1)*5

fig = go.Figure()

fig.add_trace(go.Scatter(
    x=df['x'],
    y=df['y'],
    mode='markers',
    marker=dict(
        size=df['z'],
        color=df['z'],
        colorscale=[
            [0, 'rgb(78, 165, 183)'],      # Light blue
            [0.5, 'rgb(206, 192, 250)'],    # Purple
            [1, 'rgb(232, 137, 171)']       # Pink
        ],
        opacity=0.9,
    ),
        customdata=df[["label"]],
    hovertemplate="Dot category: %{customdata[0]}",
    hoverlabel=dict(namelength=0),
    showlegend=False
))


fig.update_layout(
    width=1200,
    height=400,
    paper_bgcolor='white',
    plot_bgcolor='white',
    showlegend=False,
    margin=dict(l=0, r=0, t=0, b=0),
    xaxis=dict(
        showgrid=False,
        zeroline=False,
        showticklabels=False,
        range=[0, 3]
    ),
    yaxis=dict(
        showgrid=False,
        zeroline=False,
        showticklabels=False,
        scaleanchor="x",
        scaleratio=1,
        range=[0, 1]
    )
)

fig.show()

fig.write_html("fragments/banner.html", 
               include_plotlyjs=False, 
               full_html=False, 
               config={
                   'displayModeBar': False,
                   'responsive': True, 
                   'scrollZoom': False,
               })