Уважаемое сообщество переполнения стека,
Это первый раз, когда я сам задаю вопрос переполнения стека, поэтому я надеюсь, что я делаю это правильно.
Я объясняю свою проблему, используя следующий фрагмент кода,Моя цель - создать два боксплота (boxplotData
) с соответствующими отметками (ticks
).Я использую LaTeX, чтобы набирать метки оси (rc('text', usetex=True)
).Каждый тиковый ярлык должен занимать три строки, где последняя строка содержит количество точек данных на диаграмме.Вторая строка первой отметки должна быть пустой.
В первой отметке я хочу иметь пустую строку, и это проблема.
Когда я выполняюследующий код, я получаю сообщение об ошибке LaTeX was not able to process the following string: b''
.
У вас есть какие-либо идеи, как решить проблему?
Фрагмент кода:
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import rc
import numpy as np
rc('font',**{'family':'serif','serif':['Times']})
rc('text', usetex=True)
matplotlib.rcParams['text.latex.unicode']=True
boxplotData = [[1, 2, 3, 4], [5, 6, 7]]
# !!! Problematic label is ticks[0]
ticks = ["Data 1\n\n(N=%d)" % len(boxplotData[0]),
"Data\nwith second line\n(N=%d)" % len(boxplotData[1])]
plt.boxplot(boxplotData, positions=np.array(range(len(boxplotData))), sym='', widths=0.4)
plt.xticks(range(0, len(ticks)), ticks)
plt.show()
Решения, которые я пробовал:
- Добавить пробел или \ quad между символами новой строки: выполняется, но метка оси пропала.
- Заменить \ n \ n новой строкой LaTeX (\\): вставляет пустую промежуточную строку, но теперь метка тика больше не центрируется
Полная трассировка стека находится здесь:https://pastebin.com/E4enTBRh