【发布时间】:2021-03-27 20:02:16
【问题描述】:
我的 seaborn/matplotib 图没有将时间识别为时间。
temp t d
0 39.9 00:24:23 03-21-2021
1 39.9 00:28:32 03-21-2021
2 39.4 00:32:41 03-21-2021
3 39.2 00:36:48 03-21-2021
4 38.8 00:40:57 03-21-2021
.. ... ... ...
240 59.0 17:02:14 03-21-2021
241 58.5 17:06:23 03-21-2021
242 58.5 17:10:31 03-21-2021
243 58.5 17:14:40 03-21-2021
244 58.1 17:18:49 03-21-2021
我正在尝试将我的 x-ticks 汇总到小时
我的研究使我相信我的时间数据没有以 matplotlib 识别为时间的方式格式化。
这是生成绘图的代码区域:
#panda datafram is 'values'
g=sns.lineplot(x='t', y='temp', data=values,color="darkblue")
plt.ylim(values['temp'].min()-1, values['temp'].max()+1)
plt.xticks(rotation=90)
# compensate for axis labels getting clipped off
plt.subplots_adjust(bottom=0.15, left=0.15)
g.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S'))
g.xaxis.set_major_locator(mdates.HourLocator(interval = 400))
g.set(xlabel='Time', ylabel='Temperature')
#create unique filename based on time
filename= "Graph-" +str(dt.datetime.now().hour)+"-"+str(dt.datetime.now().minute)+".png"
plt.savefig(filename)
如果在我的图中看不清我的 X 轴,那么如果你看一下我的数据框,时间数据就会很明显,时间都是一团糟(17、9、1)。
我可以以不同的格式保存我的时间数据,或者我需要为 seaborn/matplotlib 重新格式化我的时间数据????
【问题讨论】:
-
请改进您的代码 sn-p 并提供MCVE。
-
values.t.dtype的输出是什么? -
这能回答你的问题吗? how to get ticks every hour?
-
@tdy 输出是'object'
-
@albert - thx 但不,问题是我的时间数据不是日期时间对象,下面的答案解决了它
标签: python pandas matplotlib seaborn