使用 python 绘制 svg 图表
我正在寻找一个库来在 python 中生成 svg 图(我从 sql 数据库获取数据)。 我找到了 python-gd,但它没有太多文档,上次更新是在 2005 年,所以我想知道是否还有其他库适合此目的。
我主要考虑简单的线图,比如 这个:
I am looking for a library to generate svg diagrams in python (I fetch data from a sql database). I have found python-gd, but it has not much documentation and last update was in 2005 so I wonder if there are any other libraries that are good for this purpose.
I am mostly thinking about simple line graphs, something like this:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
尝试使用 matplotlib。 您可以使用 SVG 后端 配置它。
Try using matplotlib. You can configure it with a SVG backend.
当您正在寻找简单的线条图形时,可能是 CairoPlot将满足您的需求,因为它可以生成开箱即用的 svg 输出文件。 看看这个。
此示例图像仅显示了其部分功能。 使用 launchpad 上提供的主干版本,您将能够添加图例框并添加轴标题。
除此之外,使用主干版本,还可以生成:
As you're looking for simple line graphics, probably, CairoPlot will fit your needs as it can generate svg output files out of the box. Take a look at this.
This example image shows only a few of its capabilities. Using the trunk version available at launchpad you'll be able to add a legend box and add axis titles.
Besides that, using the trunk version, it's possible to generate:
pyCairo 是一个值得关注的选项。
pyCairo is an option worth looking at.
PyChart “是一个用于创建高质量封装 Postscript、PDF、PNG 或 <强>SVG图表。”
PyChart "is a Python library for creating high quality Encapsulated Postscript, PDF, PNG, or SVG charts."
以下是 Python 中的通用 SVG 库:pySVG。
Here's a general purpose SVG library in Python: pySVG.
您可以使用 Graphviz 生成 SVG 格式的图表。 有与 Graphviz 的 Python 绑定,例如 pydot —— Graphviz 的 Dot 语言的 Python 接口。
You can use Graphviz to generate diagrams in SVG format. There are Python bindings to Graphviz e.g., pydot -- Python interface to Graphviz's Dot language.
考虑
svgwrite
https://pypi.org/project/svgwrite,用于创建 SVG 绘图的 Python 包。Consider
svgwrite
https://pypi.org/project/svgwrite, a Python package to create SVG drawings.svgfig 值得一看:
http://code.google.com/p/svgfig/
svgfig is worth a look:
http://code.google.com/p/svgfig/
与 SVG 图并不完全相关,但在搜索相同的内容时,我发现了一个精心收集的有用信息的良好来源来回答您的问题:
http://wiki.python.org/moin/NumericAndScientific/Plotting
Being not exactly related to SVG plots, but searching for the same thing I have found a good source of carefully collected useful info to answer your question:
http://wiki.python.org/moin/NumericAndScientific/Plotting
我尝试整理可用图表库的列表(这是一项正在进行的工作,我不断更新列表):http://blizzardzblogs.blogspot.com/2010/12/data-visualization-charts-and.html
我觉得 protovis 可以为您完成这项工作。 它
,所以无需再学习:)
I have tried to collate a list of available charting libraries(its an ongoing work, wherein i keep updating the list) : http://blizzardzblogs.blogspot.com/2010/12/data-visualization-charts-and.html
I feel that protovis would do the job for you. Its
So nothing more to learn :)
2018 更新:
Plotly ( https://github.com/plotly/plotly. py / https://plot.ly/d3 -js-for-python-and-pandas-charts/ )可能是最通用的解决方案。 它是在 MIT 许可证下分发的(免费使用和重用),尽管它包含的功能可能与某些具有更多限制性安全问题的 CMS 不兼容,因为它依赖于 JS,尽管也可以选择将图表导出为纯 SVG。
Pygal ( https://github.com/Kozea/pygal / http://pygal.org )更简单,仅依赖于 svg 标准。 因此,它的结果在更受限制的 CMS 系统下更可重用。 它是在 GNU 许可证下分发的。
2018 Update:
Plotly ( https://github.com/plotly/plotly.py / https://plot.ly/d3-js-for-python-and-pandas-charts/ ) is probably the most versatile solution. It is distributed under MIT license (free to use and reuse), although it include features that might not be compatible with some CMS with more restrictive security issues since it relies on JS, although options to export the diagrams as plain SVG are also available.
Pygal ( https://github.com/Kozea/pygal / http://pygal.org ) is simpler relies only on svg standard. As such it's results are more reusable under more restrict CMS systems. It is distributed under GNU license.