График рассеяния с категориальным X без объединения общих значений X

#python #plotly #scatter

Вопрос:

Привет, у меня большой набор данных,и с помощью add_trace я хочу иметь график, который показывает a1, a1 и b1 в качестве их значений x, но при запуске точечной диаграммы по умолчанию используется один a1 x для обоих y, как я могу сделать график таким: график, который я хочу

Это код, который у меня есть, который дал мне другой график с общим a1

 import pandas as pd
import plotly
import plotly.graph_objects as go
df=pd.DataFrame({'a':('a1','a1', 'b1'), 'b': (1,2,3)})
fig = go.Figure()
fig.add_trace(go.Scatter(x=df['a'], y=df['b']))
 

Это не тот график, который мне нужен

Ответ №1:

используйте индекс фрейма данных в качестве значений x и столбец a в качестве текста для галочек

 import pandas as pd
import plotly
import plotly.graph_objects as go
df=pd.DataFrame({'a':('a1','a1', 'b1'), 'b': (1,2,3)})
fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df['b']))

fig.update_layout(
    xaxis = dict(
        tickmode = 'array',
        tickvals = df.index,
        ticktext = df["a"]
    )
)
 

введите описание изображения здесь