Center labels between ticks#

Ticklabels sind relativ zu ihrem zugehörigen Tick ausgerichtet. Die Ausrichtung 'center', 'left' oder 'right' kann über die horizontale Ausrichtungseigenschaft gesteuert werden

Es gibt jedoch keine direkte Möglichkeit, die Beschriftungen zwischen den Ticks zu zentrieren. Um dieses Verhalten zu simulieren, kann man eine Beschriftung auf den kleinen Ticks zwischen den Haupt-Ticks platzieren und die Haupt-Tick-Beschriftungen sowie die kleinen Ticks ausblenden.

Hier ist ein Beispiel, das die Monate beschriftet, zentriert zwischen den Ticks.

centered ticklabels
import matplotlib.pyplot as plt

import matplotlib.cbook as cbook
import matplotlib.dates as dates
import matplotlib.ticker as ticker

# Load some financial data; Google's stock price
r = cbook.get_sample_data('goog.npz')['price_data']
r = r[-250:]  # get the last 250 days

fig, ax = plt.subplots()
ax.plot(r["date"], r["adj_close"])

ax.xaxis.set_major_locator(dates.MonthLocator())
# 16 is a slight approximation since months differ in number of days.
ax.xaxis.set_minor_locator(dates.MonthLocator(bymonthday=16))

ax.xaxis.set_major_formatter(ticker.NullFormatter())
ax.xaxis.set_minor_formatter(dates.DateFormatter('%b'))

# Remove the tick lines
ax.tick_params(axis='x', which='minor', tick1On=False, tick2On=False)

# Align the minor tick label
for label in ax.get_xticklabels(minor=True):
    label.set_horizontalalignment('center')
imid = len(r) // 2
ax.set_xlabel(str(r["date"][imid].item().year))
plt.show()

Galerie generiert von Sphinx-Gallery