строки matplotlib как метки по оси x

Я создаю небольшой инструмент для анализа данных, и я подошел к делу, где мне приходится составлять подготовленные данные. Код перед этим создает следующие два списка с равной длиной.

t11 = ['00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15', '20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35', '40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55'] t12 = [173, 135, 141, 148, 140, 149, 152, 178, 135, 96, 109, 164, 137, 152, 172, 149, 93, 78, 116, 81, 149, 202, 172, 99, 134, 85, 104, 172, 177, 150, 130, 131, 111, 99, 143, 194] 

Исходя из этого, я хочу построить гистограмму с matplotlib.plt.hist. Однако есть несколько проблем: 1. t11 [x] и t12 [x] связаны для всех x. Где t11 [x] – фактически строка. Он представляет собой определенную комбинацию детектора. Например: «01» сообщает, что обнаружение было выполнено в 0-м сегменте первого детектора и 1-м сегменте второго детектора. Моя цель состоит в том, чтобы каждая запись из t11 была помечена как точка на оси x. Запись t12 будет определять высоту полосы над входом t11 (по логарифмической оси y)

Как настроить такую ​​ось x? 2. Это все очень ново для меня. Я не мог найти ничего связанного в документации. Скорее всего потому, что я не знал, что искать. SO: Есть ли «официальное» имя для того, чего я пытаюсь достичь. Это также очень помогло бы мне.

4 Solutions collect form web for “строки matplotlib как метки по оси x”

Используйте команду xticks .

 import matplotlib.pyplot as plt t11 = ['00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15', '20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35', '40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55'] t12 = [173, 135, 141, 148, 140, 149, 152, 178, 135, 96, 109, 164, 137, 152, 172, 149, 93, 78, 116, 81, 149, 202, 172, 99, 134, 85, 104, 172, 177, 150, 130, 131, 111, 99, 143, 194] plt.bar(range(len(t12)), t12, align='center') plt.xticks(range(len(t12)), t11, size='small') plt.show() 

Для объектно-ориентированного API matplotlib можно построить собственный текст на x-ticks axis со следующим кодом:

 x = np.arange(2,10,2) y = x.copy() x_ticks_labels = ['jan','feb','mar','apr','may'] fig, ax = plt.subplots(1,1) ax.plot(x,y) # Set number of ticks for x-axis ax.set_xticks(x) # Set ticks labels for x-axis ax.set_xticklabels(x_ticks_labels, rotation='vertical', fontsize=18) 

введите описание изображения здесь

В matplotlib lingo вы ищете способ установки пользовательских тиков.

Кажется, вы не можете достичь этого с помощью pyplot.hist . Вам нужно будет создать свое изображение шаг за шагом. Здесь уже есть ответ на Stack Overflow на вопрос, который очень похож на ваш, и вам нужно начать: Matplotlib – пометить каждый бит

Во-первых, вам нужно получить доступ к объекту оси:

 fig, ax = plt.subplots(1,1) 

тогда:

 ax.set_yticks([x for x in range(-10,11)]) ax.set_yticklabels( ['{0:2d}'.format(abs(x)) for x in range(-10, 11)]) 
  • график разметки matplotlib с разным текстом в каждой точке данных
  • Поскольку matplotlib.finance устарел, как я могу использовать новый модуль mpl_finance?
  • Вложение небольших участков внутри подзаголовков в matplotlib
  • Matplotlib: установка x-пределов также заставляет метки тика?
  • устанавливать тики с логарифмической шкалой
  • Создание фигуры с точным размером и без дополнений (и легенда за пределами осей)
  • Встроенные ярлыки в Matplotlib
  • Давайте будем гением компьютера.