1

我一直在 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>
4

0 回答 0