Spaces:
Sleeping
Sleeping
import plotly.express as px | |
import pandas as pd | |
import numpy as np | |
import os | |
def plot_coordinates( | |
coords, | |
pt, # the size of the points | |
tidx, # truth idx | |
outdir=None, | |
filename=None | |
): | |
data = { | |
"X": coords[:, 0].view(-1, 1).detach().cpu().numpy(), | |
"Y": coords[:, 1].view(-1, 1).detach().cpu().numpy(), | |
"Z": coords[:, 2].view(-1, 1).detach().cpu().numpy(), | |
"tIdx": tidx.view(-1, 1).detach().cpu().numpy(), | |
"pt": pt.view(-1, 1).detach().cpu().numpy(), | |
} | |
print([(k, data[k].shape) for k in data]) | |
df = pd.DataFrame( | |
np.concatenate([data[k] for k in sorted(data.keys())], axis=1), | |
columns=[k for k in sorted(data.keys())], | |
) | |
df["orig_tIdx"] = df["tIdx"] | |
fig = px.scatter_3d( | |
df, | |
x="X", | |
y="Y", | |
z="Z", | |
color="tIdx", | |
size="pt", | |
# hover_data=hover_data, | |
template="plotly_dark", | |
color_continuous_scale=px.colors.sequential.Rainbow, | |
# make it opaque a bit | |
opacity=0.5, | |
) | |
fig.update_traces(marker=dict(line=dict(width=0))) | |
if filename is None or outdir is None: | |
return fig | |
fig.write_html( | |
os.path.join(outdir, filename) | |
) | |