[英]How do you change the x-axis scale/ticks in a bar chart with time values in the x-axis?
我有一个看起来像这样的数据框:
Time Instances
00:32:00 1
00:35:00 1
00:51:00 1
01:51:00 1
04:08:00 1
05:13:00 1
05:14:00 1
05:34:00 1
05:51:00 1
07:36:00 1
07:53:00 1
08:20:00 1
09:34:00 1
10:01:00 1
10:18:00 1
10:38:00 1
10:51:00 1
11:15:00 1
12:14:00 1
13:16:00 1
13:28:00 1
13:51:00 1
15:56:00 1
16:22:00 1
16:35:00 1
17:19:00 1
我想绘制此图,但我希望 x 轴上的“刻度”为 00:00:00,04:00:00,08:00:00,12:00:00,16:00:00, 20:00:00,23:59:00。 所以我从这个代码开始('t' 是我的数据框的名称)。
编辑:添加加载数据的部分代码。
import pandas as pd
from datetime import date, timedelta
import numpy as np
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
from matplotlib import cm
import random
import datetime
df=pd.read_csv(path)
df['Time']= pd.to_datetime(df['Time'])
df=df.sort_values("Time")
df.Time = df.Time.map(lambda x: x.replace(second=0))
df['Time'] =df['Time'].dt.time
t=df['Time'].value_counts().reset_index()
t.columns=['Time','Instances']
t=t.sort_values("Time")
ax = t.plot(x='Time',y='Instances',kind='bar', title ="Number of Instances By Time of Day", figsize=(20, 10), legend=True, fontsize=12)
ax.set_xticks([datetime.time(0,0,0,0),datetime.time(4,0,0,0),datetime.time(8,0,0,0),datetime.time(12,0,0,0),datetime.time(16,0,0,0),datetime.time(20,0,0,0),datetime.time(23,59,0,0)])
ax.set_xticklabels([datetime.time(0,0,0,0),datetime.time(4,0,0,0),datetime.time(8,0,0,0),datetime.time(12,0,0,0),datetime.time(16,0,0,0),datetime.time(20,0,0,0),datetime.time(23,59,0,0)])
希望解决这个问题,任何帮助将不胜感激!
我认为问题在于别名,因为我没有看到“t”被别名为什么?。
ax = t.plot(x='Time',y='Instances',kind='bar', title ="Number of Instances By Time of Day", figsize=(20, 10), legend=True, fontsize=12)
而是尝试
ax = plt.plot(x='Time',y='Instances',kind='bar', title ="Number of Instances By Time of Day", figsize=(20, 10), legend=True, fontsize=12)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.