按照我的 python 书,我使用 pygal 制作了一个条形图。我将信息呈现为 .svg 文件并在我的网络浏览器中打开它。我的书说情节是互动的,如果你将鼠标悬停在它上面,它会显示每个条的价值。但是,每当我将鼠标悬停在图表上时,什么都没有发生。我正在使用 mac 和 google chrome 查看文件。
谢谢!
我在我的 Windows 10 机器上遇到了同样的问题。MS Edge 和 Google Chrome 都不会将图表呈现为交互式。
在 python 中执行的脚本和最终渲染之间似乎发生了一些事情。我之所以注意到这一点,是因为 pygal 站点上的交互式示例在两种浏览器中都可以正常工作,但是当示例脚本被粘贴到 python 中并执行时,它就不能正常工作了。
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 中的嵌入标签中例如这里是我用来在使用烧瓶渲染的条形图中加载工具提示的片段
<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 的在线脚本完成的。如果您没有互联网链接,它将无法正常工作。如果您已经解决了这个问题,请告诉我们
您需要包含<script type="text/javascript" src="/js/pygal-tooltips.js"></script>
在您的 html 中。