大家好,我是小猪仔,经过了一个国庆长假,这周只放一天,当然也只能更一篇文章,于是,这篇跟着官方文档学pyecharts就出炉啦~~
咳咳,现在跟着官方文档学pyecharts系列已经推出了四期,反响也都很不戳,我们的学习进度图如下:
基本图表(2/13)
直角坐标系图表(6/9)
树形图表(0/2)
地理图表(1/3)
3D图表(0/5)
组合图表(0/4)
咱们今天呢,要讲一个基本图表雷达图和一个“进阶功能”,也就是自定义主题。
/1.Radar雷达图/
Radar雷达图的样子长这样:
其实,基本图表和直角坐标系图表有许多个不同点,如直角坐标系图表是放在坐标系中的,所以需要add两次(分别x,y),而基本图表则不用。
创建一个简单的Radar图很简单:
from pyecharts.charts import Radarfrom pyecharts import options as optsfrom pyecharts.faker import Fakersc = [{"name":x} for x in Faker.choose()]radar = ( Radar() .add_schema( sc ) .add( "销量", [Faker.values(),Faker.values()] ) .render())
效果如下:
这个schema意思是“提纲”,也就是“目录”的意思,作用是告诉Radar有那几个数据项:
schema的shape可以有多种,如:
[ {"name":数据项名,"max":该项最大值}, {"name":数据项名,"max":该项最大值}, ...]
或者是:
[ opts.RadarIndicatorItem(name=数据项名,max_=该项最大值), opts.RadarIndicatorItem(name=数据项名,max_=该项最大值), ...]
等等。而下面的add的第一个参数是系列名称,第二个参数是data值,格式如下:
// 二维列表有n行,len(sc)列,每列与schema一一对应[ [1,2,3,4,5], [6,7,8,9,10], ...]
至于Line的样式设置与symbol的样式设置与之前①是一样的,此处不再赘述:
radar = ( Radar(init_opts=opts.InitOpts(width="1000px")) .add_schema( sc ) .add( "销量", [Faker.values(),Faker.values()], symbol = "roundRect", linestyle_opts=opts.LineStyleOpts( type_="dash" ) ) .render())
在第二行,有一个陌生的InitOpts,他是专门用来初始化的一个类,用于设置整个图标的一些参数,如宽度与样式。
效果如下:
Radar还提供了对LegendOpts的支持,可以用它来选择是否是单例模式。
什么叫单例模式呢?先看下面例子:
sc = [{"name":x} for x in Faker.choose()]radar = ( Radar(init_opts=opts.InitOpts(width="1000px")) .add_schema( sc ) .add( "销量", [Faker.values()], ) .add( "价格", [Faker.values()], ) .render())
效果如下:
这就是“多例模式”,可以同时显示多个系。
而单例模式只需要增加一行代码:
.set_global_opts(legend_opts=opts.LegendOpts(selected_mode="single"))
效果如下:
如果想要这个“雷达”变成一个圆形,可以在add_schema中增加这几行代码:
shape="circle",radius="80%",
效果如下:
或许你还看过这样的Radar图:
这种图的做法和Line差不多,只需要设置一个AreaOpts就好了:
.set_series_opts(areastyle_opts=opts.AreaStyleOpts(opacity=0.1))
效果如图:
/2.Theme主题/
设置主题,是一个比较高级的话题。pyecharts内置了许多主题,我们可以用InitOpts来设置主题:
Bar(init_opts=opts.InitOpts(theme=主题))
内置主题表如下:
名称 | 图片 |
pyecharts.globals.ThemeType.DARK | |
pyecharts.globals.ThemeType.LIGHT | |
pyecharts.globals.ThemeType.CHALK | |
pyecharts.globals.ThemeType.PURPLE_PASSION | |
pyecharts.globals.ThemeType.ESSOS |
今天你学废了吗