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)

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

查看所有标签

猜你喜欢:

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

C#入门经典

C#入门经典

[美] Karli Watson、Christian Nagel / 齐立波、黄静 / 清华大学出版社 / 2008-12 / 118.00元

这是一本成就无数C#程序员的经典名著,厚而不“重”,可帮助您轻松掌握C#的各种编程知识,为您的职业生涯打下坚实的基础,《C#入门经典》自第1版出版以来,全球销量已经达数万册,在中国也有近8万册的销量,已经成为广大初级C#程序员首选的入门教程,也是目前国内市场上最畅销的C#专业店销书,曾两次被CSDN、《程序员》等机构和读者评选为“最受读者喜爱的十大技术开发类图书”!第4版面向C#2008和.NET......一起来看看 《C#入门经典》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具