Pyecharts虽然能快速的做出刁刁的交互图表,但是有时候,我们并不需要交互的,而是需要一个可以插入PPT,或者文档里的一个高清矢量图。
默认情况来看,Pyecharts只能生成html格式的文件,不过从官方的文档来看,还是有办法滴
我们先来看看官方的文档是怎么表述的:
如果想直接将图片保存为 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。使用该插件请确保你的系统上已经安装了 Nodejs 环境。安装 phantomjs $ npm install -g phantomjs-prebuilt
安装 pyecharts-snapshot $ pip install pyecharts-snapshot
调用 render 方法 bar.render(path='snapshot.png') 文件结尾可以为 svg/jpeg/png/pdf/gif。请注意,svg 文件需要你在初始化 bar 的时候设置 renderer='svg'。
可见,依托两个拓展的小工具,pyecharts就能实现导出矢量图了
然后我们再在node.js中安装需要的包 : npm install -g phantomjs-prebuilt 和pip的方法相似
然后我们再安装 pyecharts-snapshot
pip install pyecharts-snapshot
安装完后
我们在代码中加入 from pyecharts import configure
from pyecharts import Geo
import pandas as pd
from pyecharts import configure
configure(output_image=True)
df=pd.read_excel('D:\\CityData\\city.xlsx')
geo_cities_coords={df.iloc[i]['City']:[df.iloc[i]['Longitude'],df.iloc[i]['Latitude']] for i in range(len(df))}
attr=list(df['City'])
value=list(df['value'])
geo = Geo("全国主要城市空气质量", "data from pm2.5",
title_pos="center", width=2400,title_color='#4E2F2F',
height=1200, background_color='#FFFFFF',renderer='svg')
geo.add("", attr,value, type="scatter",visual_range=[0, 20000], visual_text_color="#4E2F2F",
symbol_size=5, is_visualmap=True,geo_cities_coords=geo_cities_coords,maptype='china',geo_normal_color='#FFFFFF')
geo.render(path='D:\\maptest7.svg')
#type可以调整地图的表现方式,图例类型,有'scatter', 'effectScatter', 'heatmap'可选。默认为 'scatter'
#symbol_size=5 散点大小
#maptype可以选择地图,种类,比如只显示上海
#geo_normal_color 正常状态下地图的颜色 #FFFFFF是白色
#border_color 地图边界颜色
#background_color='#404a59'背景颜色
#geo_emphasis_color 区域地图被选中时的颜色
同时我们在geo = Geo()初始图表的时候加入 renderer='svg'
最后geo.render(path='D:\\maptest7.svg') 输出的时候,后缀改为svg
这样 我们就可以得到一个非常高清的 矢量图了
不过矢量图就不能做交互了
就这样啦,搞定,完结,撒花 ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀