5

I am able to produce the following plot with this code:

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()

enter image description here

But I don't want the date to show up in the xtick labels. I want hours, minutes and seconds. I have also tried:

df_day['Time'] = pd.Series([val.time() for val in df_day['Time']])

instead of

df_day['Time'] = pd.to_datetime(df_day['Time'], format = '%H:%M:%S')

but then I get

enter image description here

and the time intervals are arbitrary and don't include seconds when the seconds are 00.

n1colas.m
  • 3,863
  • 4
  • 15
  • 28
Joseph Kelsey
  • 73
  • 2
  • 7

1 Answers1

1

Try running this lines before you code:

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)

And look at this post plot_date function set xticks for hourly data

Dharman
  • 30,962
  • 25
  • 85
  • 135