Я пытаюсь вставить timestamps
на x-axis
для scatter plot
вместо total seconds
.Ниже приведено то, что я пробовал до сих пор, но я получаю error
с этой строкой;
loc, labels = ax.set_xticks(x)
AttributeError: 'NoneType' object has no attribute 'update'
Пример:
import pandas as pd
import matplotlib.pyplot as plt
d = ({
'A' : ['08:00:00','08:10:00','08:12:00','08:26:00','08:29:00','08:31:00','10:10:00','10:25:00','10:29:00','10:31:00'],
'B' : ['1','1','1','2','2','2','7','7','7','7'],
'C' : ['X','Y','Z','X','Y','Z','A','X','Y','Z'],
})
df = pd.DataFrame(data=d)
fig,ax = plt.subplots()
x = df['A']
y = df['B']
x_numbers = (pd.to_timedelta(df['A']).dt.total_seconds())
ax.scatter(x_numbers, y)
loc, labels = ax.set_xticks(x)
newlabels = [str(pd.Timedelta(str(i)+ ' seconds')).split()[2] for i in loc]
ax.set_xticks(loc, newlabels)
Примечание Мне нужноиспользовать ax
вместо plt
, поскольку этот график называется subplot
.Если я использую сюжет, axis
будет назначен последнему subplot
вместо назначенного.