Я хочу создать цифры, на которых метки x и y показывают их числовые значения, правильно отформатированные для немецкого языка, т. Е. Используя запятую в качестве десятичного разделителя. Я также хочу использовать элементы LaTeX, например, в метке оси x или y или в легенде графика. Следующий код показывает, что первая цифра создается по желанию для языковой версии Engli sh.
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import locale
# Set to German locale to get comma decimal separater
locale.setlocale(locale.LC_NUMERIC, "deu_deu")
# Use LaTeX elements
matplotlib.rcParams['text.usetex'] = True
t = np.linspace(0.0, 1.0, 100)
s = t*np.cos(4 * np.pi * t) + 2
fig, ax = plt.subplots(figsize=(6, 4))
ax.plot(t, s)
ax.set_xlabel(r'Time $t$ with $t \le 1$')
ax.set_ylabel('Velocity $v(t)$')
plt.show()
fig.savefig("Mein_Test1.pdf")
fig2, ax2 = plt.subplots(figsize=(6, 4))
ax2.plot(t, s)
ax2.set_xlabel(r'Time $t$ with $t \le 1$')
ax2.set_ylabel('Velocity $v(t)$')
plt.ticklabel_format(useLocale=True)
plt.show()
fig2.savefig("Mein_Test2.pdf")
Первая цифра выглядит так, как нужно, с хорошими точками Engli sh в качестве десятичных разделителей. и хороший интервал в метках осей, и я могу использовать символ LaTeX "\ le" в метке оси x:
Однако на втором рисунке показано некрасивое расстояние в числах меток оси, со слишком большим пространством позади десятичного разделителя:
Если я делаю , а не , используйте "matplotlib.rcParams ['text.usetex'] = True", затем У меня не может быть элементов LaTeX в метке, то есть нет символа "\ le", но тогда интервал будет правильным даже для немецких запятых. Так что, похоже, здесь есть некоторый конфликт между немецким языком и «text.usetex». Любые идеи, чтобы получить оба права? Спасибо!