我使用python (在LinuxMint中有一个虚拟env ),我安装了pygal。
一切都很好(呈现到html),但不呈现到svg或png。其结果是:除了黑色背景,什么都没有。
我安装了cssselect和tinycss,就像前面提到的here一样。
这是第一次起作用,但当我重新尝试时,我也遇到了同样的问题。
(我不知道这是否相关,但这发生在我上个星期用暗色照片导出照片时)
我使用了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编辑:
bar_chart.render_to_png('bar_chart.png')现在起作用了。
但不是:
bar_chart.render_to_file('bar_chart.svg')发布于 2014-08-18 09:29:46
您还需要安装lxml。因此,假设您处于虚拟环境中,那么在bash/zsh提示符上运行以下命令:
pip install lxml
如果您只有其他3个库,即cssselect、pycairo、tinycss。然后,您将能够正确地呈现一个SVG,但是PNG呈现函数将生成一个坚实的黑色图像文件(没有安装lxml )。
下面的要点显示了所有步骤:
首先:安装所需的库
pip install lxmlpip install cairosvgpip install tinycsspip 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')如果您在图像查看器(Ubuntu)或Gimp中获得黑色svg图像,请尝试在Chrome中打开该图像。
发布于 2017-05-19 13:06:08
为了防止其他人遇到类似的情况,我的问题是SVG在浏览器中看起来很好,但在Inkscape中没有。我使用自定义css,并在一些元素上设置fill: transparent。应该是fill: none。
发布于 2017-11-04 00:19:20
1)安装文档中的依赖项(http://pygal.org/en/stable/installing.html)
pip install lxml
pip install cairosvg
pip install tinycss
pip install cssselect2)创建图表并呈现为文件
line_chart.render_to_file(file_svg_name)3)再次创建svg (使用相同的文件),但使用cairo
import cairosvg
cairosvg.svg2svg(url=file_svg_name, write_to=file_svg_name)对我起作用了。
https://stackoverflow.com/questions/24476029
复制相似问题