不准确的袖扣p

2024-09-30 18:34:23 发布

您现在位置: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\u slot的多个值,此操作继续 这是我用更大的表创建的一个groupme。我使用以下方法创建一个图

df1_bct_pos_ctimes3 = df1_bct_pos_ctimes.unstack(level = -2)
df1_bct_pos_ctimes3.iplot(kind = 'scatter')

我得到下面的情节 enter image description here

正如你从数据中看到的,plor看起来一点也不精确,y轴看起来很混乱

现在,如果我把袖扣放在桌子上,不解开它,看C1的位置,我得到:

代码:

df1_bct_pos_ctimes.iplot(kind = 'scatter')

enter image description here

这似乎准确地描述了表中的值。你知道吗

另一个附带问题是,如何自定义轴标签以使其更易于理解?你知道吗

谢谢你。你知道吗

编辑:好像把时间改为总秒解决了这个问题。我还是想知道为什么会发生这个问题。非常感谢。你知道吗


Tags: 数据pos秩序daysdf1slot情节c1
1条回答
网友
1楼 · 发布于 2024-09-30 18:34:23

我试图在问题的第一个plot中重新创建dataframe和类似的error。在该图中,似乎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')

enter image description here

以datetime格式创建绘图:时间

df[['a', 'time']].iplot(kind = 'scatter')

enter image description here

相关问题 更多 >