Как сделать рендеринг в латексных пигальских ярлыках

У меня есть несколько 2D-точек данных, которые поставляются с метками, которые я хотел бы отобразить в Pygal. Например, скажем, что для каждой точки мне нужно визуализировать особенность, когда я наведу на нее мышью.

Прежде всего, чтобы построить точки без каких-либо меток, я сделал следующее:

import pygal                                                       # 

data = [(0, 0), (.1, .2), (.3, .1), (.5, 1), (.8, .6), (1, 1.08), (1.3, 1.1), (2, 3.23), (2.43, 2)]

xy_chart = pygal.XY(stroke=False)
xy_chart.title = 'Correlation'
xy_chart.add('A', data)
xy_chart.render()

И он строит все данные, как я хочу, без меток (это означает, что если я наведу курсор мыши на точку, это даст мне только класс "А" и координаты точки).

Теперь, чтобы добавить метки к моим данным, как мне изменить код? Изначально я пытался сделать это:

xy_chart.add('A', [{'value': data, 'label': r'$\tau = 2.3'}])

Но это дает мне ошибку unsupported operand type(s) for -: 'tuple' and 'tuple

Если я рассматриваю только один элемент списка за раз, например:

first_elem = data[0]
xy_chart.add('A', [{'value': first_elem, 'label': r'$\tau = 2.3'}])

он работает без ошибок, но не отображает в латексе метки, поэтому я вижу на изображении $\tau = 2.3$ вместо предоставленного латексного кода.

Итак, две проблемы: первая - как я могу наносить метки на точки в целом, а вторая - как я могу рендерить эти метки в латексе?

1 ответ

Решение

Относительно вашего второго вопроса: я не уверен, что pygal поддерживает LaTeX (я не смог найти никакой информации по этому поводу - поправьте меня, если я ошибаюсь).

По первому вопросу: заполните список данных словарями следующим образом:

data = [{'value': (0, 0), 'label': "τ = 2.3"},
        (.1, .2), (.3, .1), (.5, 1), (.8, .6), (1, 1.08), (1.3, 1.1),
        (2, 3.23), (2.43, 2)]
...
xy_chart.add('A', data)
...

(Я показал это только для первого срока вашего списка).

Кстати, вы можете включить некоторые символы Юникода, поэтому, если вы не хотите метки с соответствующими математическими формулами, вы сможете получить некоторые символы (например, τ Вот).

Вы можете использовать списки для программного определения ваших меток. Например,

data = [(0, 0), (.1, .2), (.3, .1), (.5, 1), (.8, .6), (1, 1.08), (1.3, 1.1), (2, 3.23), (2.43, 2)]
labelled_data = [{'value': k, 'label': "τ = 2.3"} for k in data]
...
xy_chart.add('A', labelled_data)
...
Другие вопросы по тегам