Группировка цифр Matplotlib (десятичный разделитель) - PullRequest
3 голосов
/ 02 апреля 2010

Обычно при создании графиков с помощью matplotlib масштаб по оси Y исчисляется миллионами. Как включить группировку цифр (т. Е. Чтобы 1000000 отображался как 1 000 000) или включить десятичный разделитель?

1 Ответ

3 голосов
/ 02 апреля 2010

Не думаю, что для этого есть встроенная функция. (Это то, что я подумал после того, как прочитал ваш вопрос; я только что проверил и не смог найти его в документации).

В любом случае, вы легко можете бросить свой собственный.

(Ниже приведен полный пример, т. Е. Он сгенерирует график mpl с одной осью, имеющей коммитированные тиковые метки - хотя для создания настраиваемых тиковых меток нужно всего пять строк кода - три (включая инструкцию import) для функции, используемой для создания пользовательских меток, и две строки для создания новых меток и размещения их на указанной оси.)

# first code a function to generate the axis labels you want 
# ie, turn numbers greater than 1000 into commified strings (12549 => 12,549)

import locale
locale.setlocale(locale.LC_ALL, 'en_US')
fnx = lambda x : locale.format("%d", x, grouping=True)

from matplotlib import pyplot as PLT
import numpy as NP

data = NP.random.randint(15000, 85000, 50).reshape(25, 2)
x, y = data[:,0], data[:,1]

fig = PLT.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y, "ro")
default_xtick = range(20000, 100000, 10000)

# these two lines are the crux:
# create the custom tick labels
new_xtick = map(fnx, default_xtick)
# set those labels on the axis
ax1.set_xticklabels(new_xtick)

PLT.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...