pygal渲染png/svg黑色图片

4m1*_*4j1 17 python svg rendering data-visualization pygal

我正在使用python(在LinuxMint中使用虚拟环境),我安装了pygal.

一切正常(渲染到html)但不渲染到svg或png.结果:只有黑色背景.

我安装cssselecttinycss喜欢这里提到的.

它是第一次工作,但在重试时,我遇到了同样的问题.

(我不知道这是否相关,但在上周使用黑暗表格导出照片时,这种情况发生在我身上)

我使用pygal网站上的例子:

import pygal                                                       # First import pygal
bar_chart = pygal.Bar()                                            # Then create a bar graph object
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])  # Add some values
bar_chart.render_to_file('bar_chart.svg')                          # Save the svg to a file
Run Code Online (Sandbox Code Playgroud)

编辑:

bar_chart.render_to_png('bar_chart.png')
Run Code Online (Sandbox Code Playgroud)

现在正在工作.

但不是:

bar_chart.render_to_file('bar_chart.svg')
Run Code Online (Sandbox Code Playgroud)

emk*_*emk 29

您还需要安装lxml.因此,假设您在virtualenv中在bash/zsh提示符上运行以下命令:

pip install lxml

如果你只有其他3个库,即cssselect,pycairo,tinycss.然后你就可以正确渲染一个SVG,但是PNG渲染功能会生成一个纯黑色图像文件(没有安装lxml)

下面的要点显示了所有步骤:

[首先:安装所需的库]

  • pip install lxml
  • pip install cairosvg
  • pip install tinycss
  • pip install cssselect

[第二次:创建文件]

"""
pygal_render_png
""""
import pygal

bar_chart = pygal.Bar()
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
bar_chart.render_to_file('bar_chart.svg')
bar_chart.render_to_png(filename='bar_chart.png')
Run Code Online (Sandbox Code Playgroud)

如果您在图像查看器(Ubuntu)或Gimp中获得黑色svg图像,请尝试在Chrome中打开图像.