Как переименовать метки x в обычную строку? - PullRequest
0 голосов
/ 11 мая 2019

У меня есть график, где метки x представляют рабочие дни, но вместо того, чтобы варьироваться от понедельника до воскресенья, они варьируются от 0 до 6. Я хочу преобразовать эту ось так, чтобы она колебалась с понедельника по воскресенье (0 для понедельника, 1 для Вторник ..., 6 в воскресенье):

     import matplotlib.pyplot as plt
     plt.style.use('fivethirtyeight')
     plt.rcParams["figure.figsize"] = [16,9]
     x = Res['weekday']
     y = Res['Ammonia']
     plt.scatter(x,y)
     plt.xlabel('Weekday')
     plt.ylabel('Ammonia Level')
     plt.title('Ammonia by Weekday')
     plt.show()

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 мая 2019

Я нашел, что это довольно нелогично для решения, потому что 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()
0 голосов
/ 11 мая 2019

Используйте matplotlib.pyplot.xticks .

В вашем случае это будет:

xlabels = ["Monday", "Tuesday", ...]
plt.xticks(range(7), xlabels)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...