【发布时间】:2016-06-22 07:56:16
【问题描述】:
按照我的 python 书,我使用 pygal 制作了一个条形图。我将信息呈现为 .svg 文件并在我的网络浏览器中打开它。我的书说情节是互动的,如果你将鼠标悬停在它上面,它会显示每个条的价值。但是,每当我将鼠标悬停在图表上时,什么都没有发生。我正在使用 mac 和 google chrome 查看文件。
谢谢!
【问题讨论】:
-
有人吗?没人知道吗?
按照我的 python 书,我使用 pygal 制作了一个条形图。我将信息呈现为 .svg 文件并在我的网络浏览器中打开它。我的书说情节是互动的,如果你将鼠标悬停在它上面,它会显示每个条的价值。但是,每当我将鼠标悬停在图表上时,什么都没有发生。我正在使用 mac 和 google chrome 查看文件。
谢谢!
【问题讨论】:
我在我的 Windows 10 机器上遇到了同样的问题。 MS Edge 和 Google Chrome 都不会将图表呈现为交互式。
在 python 中执行的脚本和最终渲染之间似乎发生了一些事情。我之所以注意到这一点是因为 pygal 网站上的交互式示例在两个浏览器中都可以正常工作,但是当示例脚本粘贴到 python 中并执行时,它就不能正常工作了。
【讨论】:
您需要在 html 中包含 <script type="text/javascript" src="/js/pygal-tooltips.js"></script>。
【讨论】:
Pygal 2.0 呈现工具提示的方式与 Pygal 1.9 略有不同。如果您在浏览器中查看图表,则需要告诉 Pygal 呈现工具提示以便在浏览器中查看。 force_uri_protocol 参数需要设置为'http'。以下代码示例显示了如何执行此操作:
hist = pygal.Bar()
hist.force_uri_protocol = 'http'
例如,这是一个应该可以运行的最小程序:
import pygal
squares = [0, 1, 4, 9, 16, 25]
chart = pygal.Bar()
chart.force_uri_protocol = 'http'
chart.add('Squares', squares)
chart.render_to_file('squares.svg')
【讨论】:
为了让 pygal 在浏览器中显示工具提示,必须将其加载到 html 中的 embed 标记中 例如这里是 sn-p 我用于在使用烧瓶渲染的条形图中加载工具提示
<figure>
<embed type="image/svg+xml" src="{{ stat|safe }}"></embed>
</figure>
以及需要在head标签内给出的javascript库。
<script type="text/javascript" src="http://kozea.github.com/pygal.js/latest/pygal-tooltips.min.js"></script>
【讨论】:
这个问题解决了吗? 交互是使用带有 svg 文件中的 th href 的在线脚本完成的。 如果您没有互联网链接,它将无法正常工作。 如果您已经解决了这个问题,请告诉我们
【讨论】: