Graphing the UMAP projections using plotly

I would like to have UMAP projections of the whole IRIS dataset (multiple columns) and generate both 2d and 3d plots. The codes below I got from " [t-SNE and UMAP projections | (t-SNE and UMAP projections | Python | Plotly)" can only project one column by UMAP as specified by the “feature” object. How to project multiple columns of the dataset. Your help is greatly appreciated.

from umap import UMAP
import as px

df =

features = df.loc[:, :‘petal_width’]

umap_2d = UMAP(n_components=2, init=‘random’, random_state=0)
umap_3d = UMAP(n_components=3, init=‘random’, random_state=0)

proj_2d = umap_2d.fit_transform(features)
proj_3d = umap_3d.fit_transform(features)

fig_2d = px.scatter(
proj_2d, x=0, y=1,
color=df.species, labels={‘color’: ‘species’}
fig_3d = px.scatter_3d(
proj_3d, x=0, y=1, z=2,
color=df.species, labels={‘color’: ‘species’}