2013-11-22 3 views
4

Я хочу отформатировать ось y с помощью matplotlib в python 2.7. Это то, что я пробовал:python + matplotlib: использовать язык для форматирования оси y

ax.yaxis.get_major_formatter().set_useLocale() 

для форматировать оси Y, используя . как разделитель тысяч. Вместо того, чтобы иметь 10000, я хотел бы иметь 10.000 и т. Д. ... но я не могу найти пример того, как эта работа ...

Не удалось найти документацию на этой странице здесь не является примером или дополнительной документацией: http://matplotlib.org/api/ticker_api.html#matplotlib.ticker.ScalarFormatter.set_useLocale

Или любая другая идея о том, как отформатировать мою ось?

благодаря

+0

Вы можете сделать это следующим образом: http://tiku.io/questions/1009459/how-to-format-axis-number-format-to-thousands-with-a- разделенные-в-Matplotlib –

ответ

5

Я считаю, что вы ищете больше контроля, чем, возможно, set_useLocale() может предложить. Поэтому, опираясь на приведенный пример here, я использовал FuncFormatter с простой функцией. Функция comma_format вставляет метки оси Y с запятой в качестве разделителя тысяч, а затем заменяет запятые на периоды. Таким образом, метки оси Y могут быть отформатированы довольно легко.

from pylab import * 
import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.ticker as ticker 

def comma_format(x, p): 
    return format(x, "6,.0f").replace(",", ".") 

ax = subplot(111) 
xx = np.arange(0,20,1) 
yy = np.arange(1000,10000,450) 
ax.get_yaxis().set_major_formatter(ticker.FuncFormatter(comma_format)) 
plt.scatter(xx,yy) 
plt.show() 

enter image description here

Смежные вопросы