python 可视化 | pyecharts基本使用

今天更一篇用pyecharts的基础图形篇,折线图、柱状图、散点图、饼状图,本次使用的是pyecharts0.5.3版


Pyecharts 0.5.x版的官网

pyecharts.readthedocs.io


环境:

pyecharts 0.5.11

下载命令:pip install pyecharts=0.5.11


折线图:

基本使用

数据:

时间:['2019-03-01星期五', '2019-03-02星期六', '2019-03-03星期日', '2019-03-04星期一', '2019-03-05星期二', '2019-03-06星期三', '2019-03-07星期四', '2019-03-08星期五', '2019-03-09星期六', '2019-03-10星期日', '2019-03-11星期一', '2019-03-12星期二']
温度:[23, 25, 21, 23, 24, 19, 16, 15, 18, 17, 22, 24]

代码实现:

def line_(x, y, title='折线图'):
    line = Line('折线图',
                width=800,
                height=350,)
    line.add(title, x, y)
    line.render('{}.html'.format(title))

line_(x, y, '气温')

运行结果:

可以在这基础上添加平均值、最大/小值,在Line.add()中添加mark_point=["average", "max", "min"],mark_line=["average", "max", "min"],mark_point可以标出目标点,mark_line可以做出于y轴的连线

line.add(title, x, y,
         mark_point=["average", "max", "min"],
         mark_line=["average", "max", "min"])

运行结果:

既然是显示温度,那y轴的苏户籍加上个℃是不是会更好,添加参数yaxis_formatter="°C"即可

运行结果:

还有很多参数如平滑度、折线图转阶梯图、折线面积图等,可以参考官网进行详细查看。


柱状图

基本使用:

数据:

时间:['2019-03-01星期五', '2019-03-02星期六', '2019-03-03星期日', '2019-03-04星期一', '2019-03-05星期二', '2019-03-06星期三', '2019-03-07星期四', '2019-03-08星期五', '2019-03-09星期六', '2019-03-10星期日', '2019-03-11星期一', '2019-03-12星期二']
温度:[58, 48, 33, 41, 34, 23, 19, 22, 23, 25, 48, 82]

代码实现:

def bar_(x, y, title):
    fig = Bar('柱状图',
              width=800,
              height=350,)
    fig.add(title, x, y)
    fig.render('{}.html'.format(title))


bar_(x, y, '广州天气2')

运行结果:

查看一下add()方法

add(name, x_axis, y_axis,
    is_stack=False,
bar_category_gap='20%', **kwargs)

name-> str 图例名称

x_axis-> list x坐标轴数据

y_axis-> list y坐标轴数据

is_stack-> bool 数据堆栈,同个类目轴上系列配置相同的stack值可以堆叠放置

bar_category_gap-> int / str 类目轴的柱状距离,当设置为0时柱状是紧挨着(直方图类型),最小为'20%'


参数is_convert交换XY轴

fig.add(title, x, y,
        is_convert=True)

图例:

散点图

基本使用

add(name, x_axis, y_axis,
    extra_data=None,
    symbol_size=10, **kwargs)

名称-> str 图例名称

x_axis-> list:x坐标轴数据

y_axis->list: y坐标轴数据

extra_data->list[int]: 第三维度数据,x轴为第一个维度,y轴为第二个维度。(可在visualmap中将视图元素映射到第三维度)

extra_name->list[str]:的数据项的名称,可以为每个数据点指定一个名称。

symbol_size-> int:标记图形大小,交替为10


数据:

v1 = [10, 20, 30, 40, 50, 60]
v2 = [10, 20, 30, 40, 50, 60]

代码实现:

scatter = Scatter("散点图示例")
scatter.add("A", v1, v2)
scatter.render('散点图.html')

运行结果:

参数is_visualmap=True可以像热力图那样对数据进行渐变色

图例:



饼图

基本使用

add(name, attr, value,
    radius=None,
    center=None,
    rosetype=None, **kwargs)

名称-> str:图例名称

attr-> list:属性名称

value-> list:属性所对应的值

radius-> list:饼图的尺寸,层叠的第一项是内部尺寸,第二项是外部薄片,尺寸为[

0,75 ]模式设置成比例,相对于容器高宽中较小的一个的一半

center- > list:饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标,替换为[50,50]

设置设置成比例,设置成比例时第一项是相对于容器宽度,第二项是相对于容器高度

rosetype-> str:是否展示成南丁格尔图,通过尺寸区分数据大小,有'radius'和'area'两种模式。而是为'radius'

radius:半径圆心角展现数据的百分比,局部展现数据的大小


数据:

['第一产业(亿元)', '第二产业(亿元)', '第三产业(亿元)']
[64734, 366001, 469575]

实现代码:

def pie_(x, y, title='折线图'):
    pie = Pie(title)
    pie.add(title, x, y)
    pie.render('{}.html'.format(title))


pie_(x, y, '产业')

运行结果:


总结:

每种类型的add()方法都有很多参数,我的建议是没必要死记硬背下来,没必要,大概知道能实现什么功能,用的时候再具体查就好了。


发布于 2020-12-14 22:34