2016-03-11 3 views
-2

Я хочу изменить децимальный разделитель yticklabel от десятичной точки до запятой, но оставьте формат текста смещения (1е-14), после использования кода от this code или that code.Как изменить точку на запятую в графике matplotlib?

1

Мои вопросы:

  1. Как я могу изменить точку на запятую и сохранить 1e-14?
  2. Как я могу изменить e на E в тексте смещения?

Я использую Python 3.5

ответ

2

Для изменения десятичного разделителя от точки до запятой, вы можете изменить locale куда-то, где используется запятая. Например, здесь я поставил его на немецком языке:

#Locale settings 
import locale 
# Set to German locale to get comma decimal separater 
locale.setlocale(locale.LC_NUMERIC, "de_DE") 

import numpy as np 
import matplotlib.pyplot as plt 
plt.rcdefaults() 

# Tell matplotlib to use the locale we set above 
plt.rcParams['axes.formatter.use_locale'] = True 

# make the figure and axes 
fig,ax = plt.subplots(1) 

# Some example data 
x=np.arange(100) 
y=4e-18*x**2 

# plot the data 
ax.plot(x,y,'b-') 

plt.show() 

enter image description here

Изменение показателя степени к E офсетным текста, кажется, не простой задачей. Вы можете начать с ответов на вопросы here.

+0

Мне нужно было предоставить локаль в другом формате: 'locale.setlocale (locale.LC_NUMERIC, ('pl_PL', 'UTF-8'))'. Интересно, если в вашем ответе не должно быть '('de_DE', 'UTF-8')' ** или ** ''de_DE.UTF-8'' (возможно, это зависит от ОС?). – matandked