When creating plots, one issue I continue to face is managing the tick marks. Customizing DateTime ticks is especially difficult. But I think I've found the best way to manage this problem.
When making a plot with a DateTime array on the x-axis, use this:
#Import packages
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, YearLocator, MonthLocator, DayLocator, HourLocator
# Create the plot
ax = plt.subplot(1,1,1)
plt.(datetime_array, y_variable)
# Format Ticks
# Find months
months = MonthLocator()
# Find days
days = DayLocator()
# Find each 0 and 12 hours
hours = HourLocator(byhour=[0,12])
# Find all hours
hours_each = HourLocator()
# Tick label format style
dateFmt = DateFormatter('%d:%H')
# Set the x-axis major tick marks
ax.xaxis.set_major_locator(hours)
# Set the x-axis labels
ax.xaxis.set_major_formatter(dateFmt)
# For additional, unlabeled ticks, set x-axis minor axis
ax.xaxis.set_minor_locator(hours_each)
Example Result:
A major tick mark every 0 and 12 hour with the label formatted as [Day:Hour]. A minor tick mark on every hour.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.