python - 不准确的情节袖扣情节
问题描述
我正在尝试使用袖扣创建绘图,但它们似乎不准确,或者更好地说,y 轴似乎没有顺序。
我正在使用的数据:
time
pos_slot crane_gkey
C1 319 85 days 09:29:11
320 91 days 00:55:00
329 100 days 21:15:00
330 47 days 02:00:00
331 0 days 11:25:00
333 9 days 13:35:00
334 3 days 01:15:00
335 0 days 00:10:00
336 0 days 05:00:00
337 0 days 05:00:00
338 2 days 21:10:00
339 0 days 12:15:00
345 9 days 22:50:00
353 1 days 12:17:28
362 1 days 08:05:00
363 0 days 15:50:00
369 1 days 08:05:00
406 9 days 20:10:00
407 12 days 22:05:00
408 7 days 14:15:00
对于 pos_slot 的多个值,这种情况会继续。这是我从一个更大的表中创建的一个组。我使用以下内容创建情节
df1_bct_pos_ctimes3 = df1_bct_pos_ctimes.unstack(level = -2)
df1_bct_pos_ctimes3.iplot(kind = 'scatter')
正如您从数据中看到的那样,plor 看起来根本不准确,y 轴似乎搞砸了
现在,如果我在桌子上运行袖扣而不拆开它并查看 C1 的 pos_slot 我得到:
代码 :
df1_bct_pos_ctimes.iplot(kind = 'scatter')
这似乎准确地描述了表中的值。
另外作为一个附带问题,我如何自定义轴标签以更容易理解?
谢谢你。
编辑:似乎将时间更改为总秒数解决了这个问题。我仍然想知道为什么会发生这个问题。谢谢你。
解决方案
我试图在问题的第一个中重新创建dataframe
和类似。在该图中,似乎将视为. 因此,on 的值似乎与预期不符。( )error
plot
iplot()
time column
string
y-axis
Jupyter Notebook 5.0.0, Python 3.6.6
导入库
import datetime
from datetime import date
from datetime import timedelta
import pandas as pd
import numpy as np
from plotly import __version__
%matplotlib inline
import plotly.offline as pyo
import plotly.graph_objs as go
from plotly.offline import iplot
import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
init_notebook_mode(connected=True)
cf.go_offline()
创建样本数据
a = [319, 320,329,330,331,333,334,335,336,337,338,339,345,353,362,363,369,406,407,408]
b = ['C1']*len(a)
time = ['85 days 09:29:11', '91 days 00:55:00', '100 days 21:15:00', '47 days 02:00:00',
'0 days 11:25:00', '9 days 13:35:00', '3 days 01:15:00', '0 days 00:10:00',
'0 days 05:00:00', '0 days 05:00:00', '2 days 21:10:00', '0 days 12:15:00',
'9 days 22:50:00', '1 days 12:17:28', '1 days 08:05:00', '0 days 15:50:00',
'1 days 08:05:00', '9 days 20:10:00', '12 days 22:05:00', '7 days 14:15:00'
]
df = pd.DataFrame({'b':b, 'a':a, 'time':time})
df['time'] = df['time'].apply(pd.Timedelta)
df.head(2)
创建一个将时间转换为字符串的列
df['str_time'] = str(df.time)
df.dtypes
创建绘图:字符串格式的时间
(注意:x轴和y轴与问题相比是交换的。这里,时间现在被视为一个类别。虽然格式与问题不同。)
df[['a', 'str_time']].iplot(kind = 'scatter')
创建绘图:日期时间格式的时间
df[['a', 'time']].iplot(kind = 'scatter')
推荐阅读
- openpyxl - 使用 Openpyxl 将列表的内容写入 Excel
- javascript - 如何最小化汉堡菜单的 JavaScript?
- jquery - 无法使用 jquery 获取 datalist 中的数组数据
- python - 如何处理 DataFrame 中的配对数据集?
- android - Android SQLite 数据库可以在应用程序外编辑吗?
- python - 使用 imap_tools 阅读后将电子邮件标记为未读
- stripe-payments - 将信息传递给 Stripe
- java - Android Retrofit RecyclerView 错误:不兼容的类型:
> 无法转换为回调 - c - 什么是 C 中的字符串表?
- bash - 在 n 次匹配后可靠地停止 bash 查找