如何在 Latex pygal 标签中渲染
How to render in Latex pygal labels
我有一些 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()
它会按照我的意愿绘制所有数据,没有标签(这意味着如果我将鼠标放在一个点上,它只会给我 class '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'}])
它可以正常工作,但它不会在 latex 中渲染标签,所以我在图像中看到 $\tau = 2.3$
而不是渲染的 latex 代码。
所以有两个问题:第一个是如何在一般点上放置标签,第二个是如何在 Latex 中渲染这些标签
关于你的第二个问题:我不确定 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)
...
我有一些 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()
它会按照我的意愿绘制所有数据,没有标签(这意味着如果我将鼠标放在一个点上,它只会给我 class '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'}])
它可以正常工作,但它不会在 latex 中渲染标签,所以我在图像中看到 $\tau = 2.3$
而不是渲染的 latex 代码。
所以有两个问题:第一个是如何在一般点上放置标签,第二个是如何在 Latex 中渲染这些标签
关于你的第二个问题:我不确定 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)
...