I have a dataframe that looks like this:
I want to crate a Coordinates Plot:
fig = px.parallel_coordinates(newdf,
color="Type_enc",
dimensions=["Attack","Defense","HP","Sp.Attack","Sp.Defense","Speed"],
color_continuous_scale=[[0, 'green'], [1, 'red']],
color_continuous_midpoint=0.5,
title ="Pokemon Stats by Type")
fig.show()
And the result looks like this:
How do I change to legend to a discrete scale? So that instead of the encoded number, I just get "Fire" and "Water"? I tried changing
color="Type"
but this results in an error
Invalid element(s) received for the 'color' property of parcoords.line
Invalid elements include: ['FIRE', 'FIRE', 'FIRE', 'FIRE', 'FIRE', 'WATER', 'WATER', 'WATER', 'WATER', 'FIRE']
Thank you!
Following the comments, that should do the trick:
fig = px.parallel_coordinates(
newdf,
color = "Type_enc",
dimensions = [
"Attack", "Defense", "HP",
"Sp.Attack", "Sp.Defense", "Speed"
],
color_continuous_scale=[
(0.0, "green"), (0.5, "green"),
(0.5, "red"), (1.0, "red")
],
title = "Pokemon Stats by Type"
)
fig.update_layout(
coloraxis_colorbar=dict(
title = "Type",
tickvals = [0, 1],
ticktext = ["Water","Fire"] # You might want to change the order here!
)
)
fig.show()