plt.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
时间: 2024-04-12 09:26:37 浏览: 121
抱歉,`plt`对象没有`xaxis`属性。正确的用法是使用`ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))`,其中`ax`是通过`plt.subplots()`创建的Axes对象。
下面是修改后的代码示例:
```python
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# 甘特图数据
tasks = ['Task 1', 'Task 2', 'Task 3']
start_times = ['2:00', '3:30', '5:15']
end_times = ['3:15', '4:45', '6:30']
# 将时间转换为datetime对象
start_times_dt = [mdates.datetime.datetime.strptime(t, '%H:%M') for t in start_times]
end_times_dt = [mdates.datetime.datetime.strptime(t, '%H:%M') for t in end_times]
# 创建甘特图
fig, ax = plt.subplots()
# 设置横坐标为时间格式
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
# 绘制甘特图
for i in range(len(tasks)):
ax.barh(tasks[i], end_times_dt[i] - start_times_dt[i], left=start_times_dt[i])
# 设置标题和标签
plt.title('Gantt Chart')
plt.xlabel('Time')
# 自动调整日期显示方式
fig.autofmt_xdate()
# 显示甘特图
plt.show()
```
这样可以正确设置甘特图的横坐标轴为时间格式"%H:%M"。希望这次的解答对你有帮助!
阅读全文