python - 以日期时间为索引绘制数据框,仅在 python 的 x 轴上显示小时、分钟和秒
问题描述
我可以使用此代码生成以下图:
df_day['Time'] = pd.to_datetime(df_day['Time'], format = '%H:%M:%S')
df_day = df_day.set_index('Time')
fig=plt.figure(dpi=900)
plt.title("TESTER Summary for Day %i " %y + "\n Average Chamber Pressure %.3f [torr] \n" %p_avg_temp + str(dates[x]))
ax1 = df_day['DP-2'].plot(label = 'DP-2')
ax2 = df_day['FM-1'].plot(secondary_y = True, label = "Flow Rate")
ax1.set_ylabel('Temperatures - Pressure Drop\nInlet Pressure - Scale Weight')
ax2.set_ylabel('Flow Rate - Heat Rej.')
ax1.set_xlabel('Time ')
handles,labels = [],[]
for ax in fig.axes:
for h,l in zip(*ax.get_legend_handles_labels()):
handles.append(h)
labels.append(l)
plt.legend(handles, labels, loc = 'lower center', bbox_to_anchor = (0.5, -0.5), ncol = 3)
fig.subplots_adjust(bottom = 0.25)
ax1.grid(True, linestyle = ':')
ax2.grid(True, linestyle = ':')
plt.show()
但我不希望日期出现在 xtick 标签中。我想要小时、分钟和秒。我也试过:
df_day['Time'] = pd.Series([val.time() for val in df_day['Time']])
代替
df_day['Time'] = pd.to_datetime(df_day['Time'], format = '%H:%M:%S')
但后来我得到
并且时间间隔是任意的,当秒为 00 时不包括秒。
解决方案
在编码之前尝试运行此行:
import matplotlib.dates as mdates
myFmt = mdates.DateFormatter('%H:%M:%S') # here you can format your datetick labels as desired
plt.gca().xaxis.set_major_formatter(myFmt)
推荐阅读
- android - ConstraintLayout 中的 RecyclerView 项不占其父项的全宽
- java - 无法设置 JSTL 用户变量而不是 java.lang.String
- angular - Hostlistener 给出错误的 nativeelement.value 值和点击事件
- apache-kafka - Kafka 连接:基于模式的单个主题接收到多个表
- android - 在 SearchView 中添加多字段搜索
- java - JMeter 脚本停止工作,内存泄漏,OutOfSpace Java
- java - Android 运行正确的后台操作
- python - LSTM 多特征、多类、多输出
- linux - 怎么解决??collect2:错误:ld 在 Debian GCC 终端中返回 1 退出状态
- c# - unity on trigger enter 无法播放动画