строки 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)]) 
Interesting Posts

Как я могу сделать все папки Windows 7 в одном режиме просмотра?

Запуск программы запускается до современного пользовательского интерфейса?

Как использовать переменную на стороне замены оператора замены Perl?

Есть ли разница между «действительным xml» и «хорошо сформированным xml»?

как конвертировать миллисекунды в формат даты в android?

Каков самый длинный путь к файлу, который может обрабатывать Windows?

Почему суммировать или мутировать не работать с group_by при загрузке `plyr` после` dplyr`?

Какова цель скрытых файлов из OS X на моем внешнем диске FAT32 (только для Windows)

Как сделать учетную запись пользователя Windows, которая ничего не может изменить?

Виртуальный метод шаблона C ++

Как создать действительный случайный MAC-адрес с оболочкой bash

Как открыть проводник Windows в определенном каталоге из командной строки Windows?

Правило фильтрации SMS / текстовых сообщений в обмене активной синхронизации (синхронизация SMS)

Есть ли эквивалент chkdsk для Ubuntu?

Найти элемент управления по имени из элементов управления Windows Forms

Давайте будем гением компьютера.