Zeppelin 中使用 pyecharts (Based on Docker)

栏目: Python · 发布时间: 5年前

大致流程

  • 接下来更新的 Python 版本为 Python 3.6
Docker 拉取镜像 --> 运行镜像 --> 更新 Zeppelin 的  Python  版本(默认是 3.5) 
更新 Python 版本后安装对应的 pip --> 安装 pyecharts --> 运行 pyecharts 代码
复制代码

具体使用流程(过程中的 notebook json 会在文末附上下载链接)

  • 1、 Docker 拉取 Zeppelin 的镜像(这里不做过多 Docker 环境搭建的简介, 主要介绍怎么在 Zeppelin 中使用 pyecharts)

    docker pull apache/zeppelin:0.8.1
    
  • 2、简单模式运行 Zeppelin (简单模式的意思就是没有用 docker 的 volume 挂在文件目录出来, 毕竟只是演示:smile:)

    • docker run -itd -p 12000:8080 --rm --name zeppelin apache/zeppelin:0.8.1 映射 12000 端口,启动之后稍微等待一会初始化,打开浏览器访问 127.0.0.1:12000 即可以看见 Zeppelin 的主页了。
      Zeppelin 中使用 pyecharts (Based on Docker)
  • 3、创建一个基于 shell 命令的 notebook (解释器选择框里面显示的是 sh , 如下图所示)

    Zeppelin 中使用 pyecharts (Based on Docker)
    • 3.1、更新 Python 版本(下载过程中可能会出错,多重试几次就好了)
    %sh
    add-apt-repository ppa:jonathonf/python-3.6 && apt-get update && apt-get -y install python3.6
    复制代码
    • 3.2、校验是否安装成功
    %sh
    python3.6 -V
    复制代码
    • 3.3、输出一下 Python 3.6 的命令路径(替换解释器路径需要使用)
    %sh
    which python3.6
    
    /usr/bin/python3.6
    复制代码
    • 3.4、更新 Zeppelin 的 Python 解释器()

    具体操作如下图所示:

    Zeppelin 中使用 pyecharts (Based on Docker)
    Zeppelin 中使用 pyecharts (Based on Docker)
    Zeppelin 中使用 pyecharts (Based on Docker)
    Zeppelin 中使用 pyecharts (Based on Docker)
    Zeppelin 中使用 pyecharts (Based on Docker)
    Zeppelin 中使用 pyecharts (Based on Docker)
  • 4、安装 Python 3.6pippyecharts

    • 注: 新建一个 shellnotebook 进行安装也可以在前一个 notebook 中继续操作
    • 4.1、安装 pip
    %sh
    wget https://github.com/pypa/pip/archive/19.1.1.tar.gz && tar -zxf 19.1.1.tar.gz
    cd ./pip-19.1.1 && python3.6 setup.py install
    复制代码
    • 4.2、校验是否安装成功
    %sh
    pip3.6 -V
    
    pip 19.1.1 from /usr/local/lib/python3.6/dist-packages/pip-19.1.1-py3.6.egg/pip (python 3.6)
    复制代码
    • 4.3、安装 pyecharts
    %sh
    pip3.6 install pyecharts
    
    # 如下所示即安装成功
    Collecting pyecharts
      Downloading https://files.pythonhosted.org/packages/07/50/ab3811620082732ca9efed79ea4cd77c6f8355439ac427e4eae952bc67c8/pyecharts-1.2.1-py3-none-any.whl (144kB)
    Collecting prettytable (from pyecharts)
      Downloading https://files.pythonhosted.org/packages/ef/30/4b0746848746ed5941f052479e7c23d2b56d174b82f4fd34a25e389831f5/prettytable-0.7.2.tar.bz2
    Collecting jinja2 (from pyecharts)
      Downloading https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl (124kB)
    Collecting MarkupSafe>=0.23 (from jinja2->pyecharts)
      Downloading https://files.pythonhosted.org/packages/b2/5f/23e0023be6bb885d00ffbefad2942bc51a620328ee910f64abe5a8d18dd1/MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl
    Building wheels for collected packages: prettytable
      Building wheel for prettytable (setup.py): started
      Building wheel for prettytable (setup.py): finished with status 'done'
      Stored in directory: /root/.cache/pip/wheels/80/34/1c/3967380d9676d162cb59513bd9dc862d0584e045a162095606
    Successfully built prettytable
    Installing collected packages: prettytable, MarkupSafe, jinja2, pyecharts
    Successfully installed MarkupSafe-1.1.1 jinja2-2.10.1 prettytable-0.7.2 pyecharts-1.2.1
    复制代码
  • 5、运行 pyecharts 的测试代码

    • 目前 pyecharts 1.2.1 版本中暂时还没有 zeppelin 的渲染方法,方法将在下一个版本中进行更新。目前先通过一个比较不优雅的方式进行渲染

    • 新建一个 python 代码的 notebook

    • 5.1、运行代码示例

    %python
    import pyecharts.options as opts
    from pyecharts.charts import Bar, Line
    
    x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]
    
    bar = (
        Bar(init_opts=opts.InitOpts(width="1600px", height="800px"))
        .add_xaxis(xaxis_data=x_data)
        .add_yaxis(
            series_name="蒸发量",
            yaxis_data=[
                2.0,
                4.9,
                7.0,
                23.2,
                25.6,
                76.7,
                135.6,
                162.2,
                32.6,
                20.0,
                6.4,
                3.3,
            ],
            label_opts=opts.LabelOpts(is_show=False),
        )
        .add_yaxis(
            series_name="降水量",
            yaxis_data=[
                2.6,
                5.9,
                9.0,
                26.4,
                28.7,
                70.7,
                175.6,
                182.2,
                48.7,
                18.8,
                6.0,
                2.3,
            ],
            label_opts=opts.LabelOpts(is_show=False),
        )
        .extend_axis(
            yaxis=opts.AxisOpts(
                name="温度",
                type_="value",
                min_=0,
                max_=25,
                interval=5,
                axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
            )
        )
        .set_global_opts(
            tooltip_opts=opts.TooltipOpts(is_show=True, trigger="axis", axis_pointer_type="cross"),
            xaxis_opts=opts.AxisOpts(
                type_="category", axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow")
            ),
            yaxis_opts=opts.AxisOpts(
                name="水量",
                type_="value",
                min_=0,
                max_=250,
                interval=50,
                axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
                axistick_opts=opts.AxisTickOpts(is_show=True),
                splitline_opts=opts.SplitLineOpts(is_show=True),
            ),
        )
    )
    
    line = (
        Line()
        .add_xaxis(xaxis_data=x_data)
        .add_yaxis(
            series_name="平均温度",
            yaxis_index=1,
            y_axis=[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
            label_opts=opts.LabelOpts(is_show=False),
        )
    )
    
    bar.overlap(line).render("mixed_bar_and_line.html")
    
    # 此时 Zeppelin 会有生成的 html 的文件路径(下面代码会用到)
    '/zeppelin/mixed_bar_and_line.html'
    复制代码
    • 5.2、渲染生成的 html 文件(后期版本会直接返回生成的 html 代码就可以直接渲染了)
      • 这里主要用到的是 Zeppelin 中渲染 html 的关键字,具体文档见右边Zeppelin 文档
      %python
      html_file = open("/zeppelin/mixed_bar_and_line.html", "r", encoding="utf-8")
      html_content = html_file.read()
      print("%html " + html_content)
      复制代码
      • 生成的图例( 可以交互 )
        Zeppelin 中使用 pyecharts (Based on Docker)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

常用算法深入学习实录

常用算法深入学习实录

张子言 / 电子工业出版社 / 2013-10 / 89.00元

对于任何一门编程语言来说,算法都是程序的“灵魂”。正是因为算法如此重要,所以笔者精心编写了本书,希望通过书中的内容引领广大读者一起探讨学习算法的奥秘,带领广大读者真正步入程序开发的高级世界。 本书共分15章,循序渐进、由浅入深地详细讲解算法的核心内容,并通过具体实例的实现过程演练各个知识点的具体用法。本书首先详细讲解算法的基础知识,剖析了将算法称为“程序灵魂”的原因。然后详细讲解算法技术的核......一起来看看 《常用算法深入学习实录》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具