Как сделать рендеринг в латексных пигальских ярлыках - PullRequest
0 голосов
/ 24 января 2019

У меня есть несколько двумерных точек данных, которые поставляются с метками, которые я хотел бы отобразить в 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()

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

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

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 Ответ

0 голосов
/ 24 января 2019

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

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

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)
...
...