我一直在 python 中使用 vincent 来制作等值线图,现在我想将它们制作成图像以用于演示。有谁知道如何做到这一点?下面是我正在使用的代码:
county_borders = r'us_counties.topo.json'
geo_data = [{'name': 'counties',
'url': county_borders,
'feature': 'us_counties.geo'}]
choro_pop = vincent.Map(data=counties_only, geo_data=geo_data, scale=1500, projection='albersUsa',
data_bind='CENSUS2010POP', data_key='FIPS',
map_key={'counties': 'properties.FIPS'})
choro_pop.marks[0].properties.enter.stroke_opacity = ValueRef(value=0.5)
choro_pop.rebind(column = 'ESTIMATESBASE2010', brew = 'OrRd')
choro_pop.to_json('Counties_Population_choropleth.json', html_out=True, html_path='Counties_Population_choropleth.html')
choro_pop.display()
这给了我一个 ipython 笔记本中的地图(耶!)并输出一个 html 文件和一个 .json 文件。html 文件只是一个“脚手架”,它实际上不包含任何我可以分辨的数据,并且在浏览器中打开时它不显示任何内容(我尝试过 chrome)。
我知道的 .json 文件类似于字典,但我不确定如何使用它来绘制漂亮的图像。
谢谢!
edit1:这是 html 文件中的内容
<html>
<head>
<title>Vega Scaffold</title>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<script src="http://d3js.org/d3.geo.projection.v0.min.js" charset="utf-8"> </script>
<script src="http://trifacta.github.com/vega/vega.js"></script>
</head>
<body>
<div id="vis"></div>
</body>
<script type="text/javascript">
// parse a spec and create a visualization view
function parse(spec) {
vg.parse.spec(spec, function(chart) { chart({el:"#vis"}).update(); });
}
parse("Counties_Population_change_choropleth.json");
</script>
</html>