|
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)'], |
|
[0.5, 'rgb(206, 192, 250)'], |
|
[1, 'rgb(232, 137, 171)'] |
|
], |
|
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, |
|
}) |