График plotly scatter - сохранить порядок данных по оси x
Если в параметре (size, color, или symbol) указать колонку 'play' сортирует ось x на графике.
df = pd.DataFrame({'name' : ['name1' , 'name2', 'name3', 'name4', 'name5'],
'it1' : [2, 2, 4, 6, 2],
'it2' : [2, 4, 4, 1, 4],
'coeff_it' : [0.8, 0.9, 1.5, 1, 1.3],
'play' : ['Away', 'Home', 'Away', 'Home', 'Away']})
fig = px.scatter(df, x="opponent", y="it1", symbol='play',
)
fig.show()
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Ну это такая фича plolty, многими принимаемая за баг. по умолчанию plotly сортирует сет по категориальным данным. но это легко лечится:
import plotly.express as px
import pandas as pd
df = pd.DataFrame({'name' : ['name1' , 'name2', 'name3', 'name4', 'name5'],
'it1' : [2, 2, 4, 6, 2],
'it2' : [2, 4, 4, 1, 4],
'coeff_it' : [0.8, 0.9, 1.5, 1, 1.3],
'play' : ['Away', 'Home', 'Away', 'Home', 'Away']})
fig = px.scatter(df, x="name", y="it1", symbol='play', color="play")
fig.update_xaxes(categoryorder='category ascending') # указываем явным образом
# порядок оси абсцисс.
fig.show()
