【问题标题】:How to render in Latex pygal labels如何在 Latex pygal 标签中渲染
【发布时间】:2019-01-24 12:38:44
【问题描述】:

我有一些带有标签的 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 中呈现这些标签

【问题讨论】:

  • 很抱歉,您的代码中存在语法错误。您能否修复这些错误并提供一个独立的代码(也带有适当的导入语句)。
  • 固定和扩展

标签: python latex rendering pygal


【解决方案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)
...

【讨论】:

  • 谢谢,我想这是我能做的最好的了!
猜你喜欢
  • 2018-05-26
  • 2013-11-18
  • 2017-09-22
  • 2018-07-13
  • 2011-05-01
  • 2016-06-20
  • 1970-01-01
  • 2012-01-14
相关资源
最近更新 更多