Установить локаль на картографический тикер

Мне было интересно и искал в документах: есть ли способ установить локаль, например, чтобы использовать запятые вместо точек в качестве разделителей для десятичных знаков в метках cartopy?

В matplotlib это можно сделать, но это не относится к LongitudeFormatter и LatitudeFormatter cartopy.mpl.ticker.

Может разработчики что-то добавят в новых версиях?


person haperes    schedule 13.11.2017    source источник
comment
Объект gridlines имеет свойства xformatter и yformatter, которые имеют метод set_useLocale. Так что я могу gl = ax.gridlines(draw_labels=True), затем `gl.xformatter.set_useLocale(True)' Вы пробовали это + это определенно не работает?   -  person pp-mo    schedule 16.11.2017


Ответы (1)


В LongitudeFormatter и LatitudeFormatter нет ничего особенного, это просто специализированные средства форматирования.
Итак, объект gridlines имеет свойства xformatter и yformatter, у которых есть метод set_useLocale.

Это сработало для меня...

>>> ax = plt.gca()
>>> gl = ax.gridlines(draw_labels=True,
...                   xlocs=[-120.5, -50.8, 30.7, 134.2, 157.8])
>>> gl.xformatter.set_useLocale(True)
>>> plt.show()

НО вам нужно установить локаль машины для начала. Чтобы получить "," числовые разделители, я начал с:

$ export LC_NUMERIC="it_IT.UTF-8"
$ python

Я мало что знаю об этом, но я думаю, что вы не можете изменить это динамически через интерфейс Python, это должно быть в вызывающей среде
-- см. Установка локали Python не работает

person pp-mo    schedule 16.11.2017
comment
Это работает для запятой, но я не использую ax.gridlines, и мне не нужны сами линии сетки. Я использую ax.set_yticks, а затем LongitudeFormatter и LatitudeFormatter, чтобы °, W и S были написаны на метках - person haperes; 18.11.2017