如何在Latex pygal标签中呈现

时间:2019-01-24 12:38:44

标签: python latex rendering pygal

我有一些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()

它按我的意愿绘制所有数据,没有标签(这意味着如果我将鼠标放在一个点上,它只会给我'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$中看到了而不是呈现的乳胶代码。

有两个问题:第一个是如何在一般点上放置标签,第二个是如何在Latex中渲染这些标签

1 个答案:

答案 0 :(得分: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)
...

(我只在您名单的第一期显示过它。)

通过这种方式,您可以包含一些unicode字符,因此,除非您希望包含涉及数学公式的标签,否则您应该能够获得一些符号(例如此处的τ)。

您可以使用列表推导以编程方式确定标签。例如,

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