Значения значений по оси x не совпадают с входными - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь создать гистограмму, используя следующую таблицу и код:

tracedata1:

Berth
01E                                 56.0
01W                                  0.0
02                                  59.0
08                                  92.0
09                                   5.0
14                                  19.0
15                                   8.0
16                                  68.0
17                                  30.0

код гистограммы:

trace1 = Bar(x = tracedata1.reset_index()['Berth'], y = tracedata1)
data1 = [trace1]
layout1 = Layout(xaxis = dict(tickangle = -45))
fig1 = dict(data = data1, layout = layout1)
iplot(fig1)

и это дает мне следующий график:

enter image description here

Я не понимаю, почему на оси x показаны только значения Int, а не какие-либо другие. Ввод оси x имеет тип объекта.

EDIT: df3 в вопросе:

ATA                 ATD                Begin Receive    Berth Time       Days Spent
2018-04-14 03:50:00 2018-04-19 14:35:00 NaN                 29 5 days 10:45:00  5.0
2018-04-30 16:20:00 2018-05-01 12:58:00 2018-Apr-16 07:00   C2 0 days 20:38:00  0.0

1 Ответ

0 голосов
/ 03 мая 2018

plotly читает ваши значения x, видя, что некоторые из них являются числами, и автоматически отображает столбцы в виде чисел. Мы хотим переопределить это - поэтому скажите, что тип вашей оси 'category'. Вот некоторый немного чистый код:

tracedata1 = df3.groupby('Berth', as_index=False).agg({'Days Spent': 'sum'})

trace1 = Bar(x=tracedata1['Berth'], y=tracedata1['Days Spent'])
data1 = [trace1]
layout1 = Layout(xaxis=dict(tickangle=-45, type='category'))
fig1 = dict(data=data1, layout=layout1)
iplot(fig1)
...