安装 pip install pyecharts
直接使用该命令安装的版本为最新版本为1.5。语法与以前版本大不同,所以本文仅针对1.5及以后版本说明。若想使用以前版本请使用命令pip install pyecharts == 0.1.5.19
注:建议在jupyter notebook中coding,方便debug。html
基本套路就是先建立一个你须要的空图层,而后使用.set_global_opts
修改全局项再用.set_series_opts
修改具体的相关配置就能够。固然最好的学习地址必定是官方文档,可是里面介绍的太过复杂了,这里仅以快速上手使用为目标进行几个例子来讲明套路。json
pyecharts比较好的就是绘制地图,这里以2019-nCov项目中安徽省地图绘制为例。
数组
首先导入须要的包echarts
from pyecharts.charts import Pie ,Grid,Bar,Line
from pyecharts.faker import Faker #数据包from pyecharts.charts import Map,Geo
from pyecharts import options as opts
from pyecharts.globals import ThemeType
OK,我如今有一个省份的一组数据,大概长这样
ide
locate =['合肥市', '阜阳市', '亳州市', '安庆市', '马鞍山市', '铜陵市', '六安市', '滁州市', '池州市','蚌埠市','芜湖市','宿州市','宣城市','淮北市','淮南市','黄山市']`
data =['115','105','72','66','30','22','41','11','11','88','27','27','5','22','14','9']
这也是接触到的须要绘制地图的数据格式,两个list,一个是地名,一个是每一个城市对应的数据,如今执行如下代码就能够获得安徽省的疫情地图。函数
list1 = [[locate[i],data[i]] for i in range(len(locate))] #首先建立数据
map_1 = Map(init_opts=opts.InitOpts(width="400px", height="460px")) #建立地图,其中括号内能够调整大小,也能够修改主题颜色。
map_1.add("安徽疫情", list1, maptype="安徽") #添加安徽地图
map_1.set_global_opts( #设置全局配置项#title_opts=opts.TitleOpts(title="安徽疫情"), 添加标题
visualmap_opts=opts.VisualMapOpts(max_=120, is_piecewise=True),#最大数据范围 而且使用分段
legend_opts=opts.LegendOpts(is_show=False), #是否显示图例
)
map_1.render_notebook() #直接在notebook中显示# map_1.render('map1.html') 将地图以html形式保存在工做目录下
固然地图还有不少能够自定义的配置项,选择须要的配置项添加到对应的函数中便可。学习
# 数据项 (坐标点名称,坐标点值)
data_pair: Sequence,
# 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件
maptype: str = "china",
# 是否选中图例
is_selected: bool = True,
# 是否开启鼠标缩放和平移漫游。
is_roam: bool = True,
# 当前视角的中心点,用经纬度表示
center: Optional[Sequence] = None,
# 当前视角的缩放比例。
zoom: Optional[Numeric] = 1,
# 自定义地区的名称映射
name_map: Optional[dict] = None,
# 标记图形形状
symbol: Optional[str] = None,
# 是否显示标记图形
is_map_symbol_show: bool = True,
# 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
# 高亮标签配置项,参考 `series_options.LabelOpts`
emphasis_label_opts: Union[opts.LabelOpts, dict, None] = None,
# 高亮图元样式配置项,参考 `series_options.ItemStyleOpts`
emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
最简单的一个饼图大数据
饼图的更多配置项
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,
# 系列数据项,格式为 [(key1, value1), (key2, value2)]
data_pair: Sequence,
# 系列 label 颜色
color: Optional[str] = None,
# 饼图的半径,数组的第一项是内半径,第二项是外半径# 默认设置成百分比,相对于容器高宽中较小的一项的一半
radius: Optional[Sequence] = None,
# 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标# 默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
center: Optional[Sequence] = None,
# 是否展现成南丁格尔图,经过半径区分数据大小,有'radius'和'area'两种模式。# radius:扇区圆心角展示数据的百分比,半径展示数据的大小# area:全部扇区圆心角相同,仅经过半径展示数据大小
rosetype: Optional[str] = None,
# 饼图的扇区是不是顺时针排布。
is_clockwise: bool = True,
# 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
继续使用地图里的数据绘制饼图,如今想看安徽各地区疫情分布比,就能够考虑使用饼图(玫瑰图)。详细代码spa
柱状图map_2 = (
Pie(init_opts=opts.InitOpts(width="600px", height="500px")) 建立一个饼图
.add(
"", #图名
[[locate[i],data[i]] for i in range(len(locate))], #添加数据
radius=["40%", "75%"], # 调整半径
)
.set_global_opts(
legend_opts=opts.LegendOpts(
orient="vertical", pos_top="10%", pos_left="88%"#图例设置
),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) #设置标签
)
map_2.render_notebook() #直接在notebook中显示#map_2.render('map2.html') #保存到本地
demodebug
[object Object]经过添加配置项能够调整标题、图例、粗细、位置、背景图等等
# 系列数据
yaxis_data: Sequence[Numeric, opts.BarItem, dict],
# 是否选中图例
is_selected: bool = True,
# 使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用。
xaxis_index: Optional[Numeric] = None,
# 使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。
yaxis_index: Optional[Numeric] = None,
# 系列 label 颜色
color: Optional[str] = None,
# 数据堆叠,同个类目轴上系列配置相同的 stack 值能够堆叠放置。
stack: Optional[str] = None,
# 同一系列的柱间距离,默认为类目间距的 20%,可设固定值
category_gap: Union[Numeric, str] = "20%",
# 不一样系列的柱间距离,为百分比(如 '30%',表示柱子宽度的 30%)。# 若是想要两个系列的柱子重叠,能够设置 gap 为 '-100%'。这在用柱子作背景的时候有用。
gap: Optional[str] = None,
# 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
# 标记点配置项,参考 `series_options.MarkPointOpts`
markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None,
# 标记线配置项,参考 `series_options.MarkLineOpts`
markline_opts: Union[opts.MarkLineOpts, dict, None] = None,
# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
若是想要同时叠加绘制图形能够采用参考如下方法
[object Object]
使用新版pyecharts并不难,基本套路都和上面同样,只要先学会画图套路,再多读官方文档就能够。