Python 打印与输入不同的x轴值
我正在尝试使用下表和代码创建条形图: 跟踪数据1:Python 打印与输入不同的x轴值,python,pandas,bar-chart,plotly,Python,Pandas,Bar Chart,Plotly,我正在尝试使用下表和代码创建条形图: 跟踪数据1: Berth 01E 56.0 01W 0.0 02 59.0 08 92.0 09 5.0 14
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)
它给出了下面的图表:
我不明白为什么x轴只显示Int值而不显示任何其他值。x轴输入为对象类型
编辑:
有关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
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)
您正在传递整个数据帧作为
y
的参数。您要绘制的数据列名为什么?tracedata1=df3.groupby('Berth').sum()['Days-speed']
我也从原始数据框中尝试了这一点:Bar(x=df3.groupby('Berth').sum().reset_index()['Berth'],y=df3.groupby('Berth').sum()['Days-speed'])
结果是相同的,请严格按照您编写的方式进行尝试,仍然给我相同的结果。从Berths创建一个列表,然后向所有值添加一个字符串,然后将其传递给plotly会有帮助吗?对不起,如果这是一个愚蠢的想法,我只是不知道这里发生了什么。你能在你的问题中添加一个df3
的示例吗?尝试执行print(df3.head())
并将df3的inI编辑部分复制到原始文章中,这只是我用于此图的列,但原始文章大约有63列。而且我只是试着用时间而不是用几天的时间,我也有同样的问题,谢谢!这是可行的,显然,向泊位列添加字符串也解决了这个问题,但您的解决方案简单得多,而且看起来更好。再次感谢您!