Я нашел, что это довольно нелогично для решения, потому что plt.xticks
не будет работать, и значение по умолчанию для ax.xticks
, кажется, начинается с 1, поэтому он неправильно выравнивает метки, если вы не установите его на range(7)
import random
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
# Create some fake data
x_axis = [[x for y in range(50)] for x in range(7)]
y_axis = [[random.random() * 10 for y in range(50)] for x in range(7)]
# Create figure and axis objects
fig, ax = plt.subplots()
ax.scatter(x_axis, y_axis)
# Your existing code
plt.xlabel('Weekday')
plt.ylabel('Ammonia Level')
plt.title('Ammonia by Weekday')
# Set the xtick labels on the axis object
ax.set_xticks(range(7))
ax.set_xticklabels(['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'])
plt.show()