This page demonstrates Python tips and tricks that I use in my everyday programming as an atmospheric science graduate student.
-Brian Blaylock

Thursday, July 3, 2014

Managing DateTime Tick Marks

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.