基于python的pyecharts大数据作图方法与简单修饰

288 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情

✔个人主页:Mr.Darcy8的掘金主页

🎉欢迎关注👀点赞👍收藏⭐留言📝以及交流人生哲理🎈学习心得🎁

引入

在前期学习了一些数据处理操作之后,我们想要将其进行可视化处理,生成能直观感受的数据分析结果,以此来讲解给需要用到结果的人——或者让自己看得舒服——

我们用pandas自带的作图工具有的时候不那么如人意,其可定制化程度不高,难以满足一些需求

这个时候我们就需要用新的工具了——

他就是pyecharts

一、什么是pyecharts

首先我们要知道一个东西——Echarts

Echarts是一个由百度开源的商业级数据图表,它是一个纯JavaScript的图表库,在业界非常有名。

因为他可以为用户提供直观生动,可交互,可高度个性化定制的数据可视化图表,赋予了用户对数据进行挖掘整合的能力。

而pyecharts顾名思义,就是python和echarts连接起来,从而用python做出echarts图表的第三方库了

二、模块安装与导入

首先我们需要打开随便一个py运行环境(这里我们以jupyter notebook为例)

输入pip install pyecharts来安装该依赖

image.png

获得如图的提示即为安装成功(其实没有报错就是安装成功)

加载必要依赖。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#如果是pyecharts更早的版本可能不需要运行下面的命令
import pyecharts
pyecharts.globals._WarningControl.ShowWarning = False

import warnings
warnings.filterwarnings('ignore')#隐藏警告

image.png

隐藏警告是为了防止版本更新带来的一些的提示。基本操作学习中不需要考虑太多,否则容易进度太慢而造成拖延和不自信。

三、作图的通用流程

  1. 选择图的类型
  2. 导入图所需要的数据

如上,两步几乎涵盖了作图的所有进程。

以创建一个柱状图bar为例:

我们先要有一个数据(前期准备)

x=list(range(1,8))
#x=[2,1,4,5,7,8,10]
y=[114, 55, 27, 101, 125, 27, 105]

这样我们可以得到一个1~7的x值,以及可以与x一一对应的y值。正好适合作柱状图的数据

from pyecharts import options as opts
from pyecharts.charts import Bar

从pyecharts中引入我们需要的工具。然后就可以开始作图了!

bar = Bar()
bar.add_xaxis(list(x))
bar.add_yaxis("name", y)
bar.render_notebook()#用来在notebook中展示图形,使用render则会直接保存为html文件

第一行创建一个bar对象(选择图的类型),二三行是为了把数据导入(导入图所需要的数据)。

这样其实一个图就创建好了。我们为了更好地调试,用第四行代码把图在notebook中展示出来——

image.png

如图,创建过程非常丝滑。有空一定要亲自体验一下。echarts具有交互属性,你可以用鼠标移动到各个柱子上,他会显示出图所代表的名字以及xy值。非常好用

四、简单修饰

用pyecharts非常重要的原因之一是其可定制化和交互性。如何利用好这些优点,需要我们善于用代码修饰我们作出的图表。

使其符合我们的需要才是关键

下面来看看如何客制化一个柱状图bar:

Tip:做数据分析练习的时候有个十分头疼的问题是我们没有足够时候的数据。pyecharts库提供了一个非常人性化的小工具——faker,可以生成我们图表需要的数据,这样我们可以快速将重点精力集中在图表制作和测试:

from pyecharts.faker import Faker#用来产生伪数据的包

接下来我们把相关变量直接放进我们的图标生成代码里,方便大家切身体会一下这些可以自定义的变量的位置和使用逻辑,毕竟实操才是最有效的学习码代码的方法。

c = (
    Bar(init_opts=opts.InitOpts(width="620px", height="300px"))
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values())
    .add_yaxis("商家B", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
)

这是一个python语句的写法。其实分开来一行一行写就像(三)中那样也是可以的。这里就理解成是从上到下依次对c执行这些操作。

Bar()生成bar图表(选择图表类型),add_xaxis()和add_yaxis()分别为x和y坐标创建名称和数据。global_opt中的title——opt参数中可以设置主标题副标题。

其中y的括号中第一个参数是图例名,即一个统计量。右边的是数据,我们用Faker的自动生成数据代替。 x则直接用Faker自动生成的商品名代替。

多说无益,直接看效果:c.render_notebook查看图表:

image.png

生成过程非常丝滑,图表也非常好看。

快来开发出赏心悦目的数据图表吧~

新人上路,欢迎互相帮扶~Mr_darcy8的掘金主页

可以的话给咱点个赞呗💖