如何使用时间戳创建散点图

时间:2018-06-22 06:32:16

标签: python pandas matplotlib scatter

如何使用timestamps生成散点图?

下面是一个示例,但出现错误ValueError: First argument must be a sequence

import pandas as pd
import matplotlib.pyplot as plt

d = ({
    'A' : ['08:00:00','08:10:00'],
    'B' : ['1','2'],           
    })

df = pd.DataFrame(data=d)

fig = plt.figure()

x = df['A']
y = df['B']

plt.scatter(x,y)

如果我将时间戳转换为总秒数,它将起作用:

df['A'] = pd.to_timedelta(df['A'], errors="coerce").dt.total_seconds()

但是我希望24小时是在x轴上,而不是总秒数。

1 个答案:

答案 0 :(得分:0)

使用x-ticks:

d = ({
'A' : ['08:00:00','08:10:00'],
'B' : [1,2],
})

df = pd.DataFrame(data=d)

fig = plt.figure()

x = df['A']
y = df['B']

x_numbers = list(pd.to_timedelta(df['A'], errors="coerce").dt.total_seconds ())
plt.scatter(x_numbers, y)
plt.xticks(x_numbers, x)
plt.show()

这会将时间戳记标记为x轴上的刻度线。

请注意,我已将数据框中的“ B”列转换为数字而不是字符串。如果确实需要将它们作为字符串或从文件中导入为字符串,则只需将其转换为数字即可,例如通过eval函数。