• 数据可视化--pyecharts学习 基本图表的建立


    国内建议使用下面的镜像安装

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

    当你使用的是python2.x时,请务必插入此代码:

    from __future__ import unicode_literals

    当你使用的是python3.x时,请务必粉我一下!

    参考pyechart官方文档:http://pyecharts.org/#/zh-cn/

    一切以官方为准!!!

    当然里面也有一些错误,比如:Polar-Love这个部分函数命名错误

    迈出可视第一步,数据分析不是事。

    使用的【基本要领】在于:

    1. 导入相关图表包

    2. 进行图表的基础设置,创建图表对象

    3. 利用add()方法进行数据输入与图表设置(可以使用print_echarts_options()来输出所有可配置项)

    4. 利用render()方法来进行图表保存

    新的版本有了很多的调整,请具体参照官方文档

    比如使用  

      from pyecharts.charts import Bar

     代替  

     from pyecharts import Bar

    如果想在直接生成html文件,需要调用.render("xxx.html")函数

     如果想在notebook中直接展示图表,需要调用render_notebook()函数

     如果想要绘制出基本的图形,需要调用make_snapshot(snapshot, bar.render(), "bar.png") ,其中需要安装对应的浏览器的驱动

    Note: 在使用 Pandas&Numpy 时,请确保将数值类型转换为 python 原生的 int/float。比如整数类型请确保为 int,而不是 numpy.int32

    新版本基本用法

    直接参照最新官网的案例,挑选自己合适的demo进行改装即可

    from pyecharts.charts import Bar
    
    bar = Bar()
    bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    # render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
    # 也可以传入路径参数,如 bar.render("mycharts.html")
    bar.render()

     在notebook里面可以使用bar.render_notebook()直接可视化

    以下是目前的可视化项目的大类,具体的还有小类,根据不同的数据特点来选择不同的项目

    • 基本图表
      • Calendar:日历图
      • Funnel:漏斗图
      • Gauge:仪表盘
      • Graph:关系图
      • Liquid:水球图
      • Parallel:平行坐标系
      • Pie:饼图
      • Polar:极坐标系
      • Radar:雷达图
      • Sankey:桑基图
      • Sunburst:旭日图
      • ThemeRiver:主题河流图
      • WordCloud:词云图
    • 直角坐标系图表
      • Bar:柱状图/条形图
      • Boxplot:箱形图
      • EffectScatter:涟漪特效散点图
      • HeatMap:热力图
      • Kline/Candlestick:K线图
      • Line:折线/面积图
      • PictorialBar:象形柱状图
      • Scatter:散点图
      • Overlap:层叠多图
    • 树型图表
      • Tree:树图
      • TreeMap:矩形树图
    • 地理图表
      • Geo:地理坐标系
      • Map:地图
      • BMap:百度地图 
    • 3D 图表
      • Bar3D:3D柱状图
      • Line3D:3D折线图
      • Scatter3D:3D散点图
      • Surface3D:3D曲面图
    • 组合图表
      • Grid:并行多图
      • Page:顺序多图
      • Tab:选项卡多图
      • Timeline:时间线轮播多图
    • HTML 组件
      • Component 通用配置项
      • Table:表格
      • Image:图像

    pyecharts 对配置项基本上都采用 XXXOpts/XXXItems 以及 dict 两种数据形式,这两种是完全等价的。

    比如下面三者效果是一致的

    c = Bar(init_opts=opts.InitOpts(width="620px", height="420px"))
    c = Bar(dict(width="620px", height="420px"))
    c = Bar({"width": "620px", "height": "420px"})

    将数据传入到 pyecharts 的时候,需要自行将数据格式转换成上述 Python 原生的数据格式。使用数据分析大都需要使用 numpy/pandas,但是 numpy 的 numpy.int64/numpy.int32/... 等数据类型并不继承自 Python.int

    Q1: 如何转换?

    # for int
    [int(x) for x in your_numpy_array_or_something_else]
    # for float
    [float(x) for x in your_numpy_array_or_something_else]
    # for str
    [str(x) for x in your_numpy_array_or_something_else]

    Q2: 有没有更方便的转换方法?

    Series.tolist()

    老式版本基本用法

    我们先创建一组数据

    //设置行名
    columns = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
    //设置数据
    data1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
    data2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]

    柱状图-Bar

    //导入柱状图-Bar
    from pyecharts import Bar
    //设置柱状图的主标题与副标题
    bar = Bar("柱状图", "一年的降水量与蒸发量")
    //添加柱状图的数据及配置项
    bar.add("降水量", columns, data1, mark_line=["average"], mark_point=["max", "min"])
    bar.add("蒸发量", columns, data2, mark_line=["average"], mark_point=["max", "min"])
    //生成本地文件(默认为.html文件)
    bar.render()

    饼图-Pie

    //导入饼图Pie
    from pyecharts import Pie
    //设置主标题与副标题,标题设置居中,设置宽度为900
    pie = Pie("饼状图", "一年的降水量与蒸发量",title_pos='center',width=900)
    //加入数据,设置坐标位置为【25,50】,上方的colums选项取消显示
    pie.add("降水量", columns, data1 ,center=[25,50],is_legend_show=False)
    //加入数据,设置坐标位置为【75,50】,上方的colums选项取消显示,显示label标签
    pie.add("蒸发量", columns, data2 ,center=[75,50],is_legend_show=False,is_label_show=True)
    //保存图表
    pie.render()

    箱体图-Boxplot

    //导入箱型图Boxplot
    from pyecharts import Boxplot 
    boxplot = Boxplot("箱形图", "一年的降水量与蒸发量")
    x_axis = ['降水量','蒸发量']
    y_axis = [data1,data2]
    //prepare_data方法可以将数据转为嵌套的 [min, Q1, median (or Q2), Q3, max]
    yaxis = boxplot.prepare_data(y_axis)       
    boxplot.add("天气统计", x_axis, _yaxis)
    boxplot.render()


    折线图-Line

    from pyecharts import Line
    line = Line("折线图","一年的降水量与蒸发量")
    //is_label_show是设置上方数据是否显示
    line.add("降水量", columns, data1, is_label_show=True)
    line.add("蒸发量", columns, data2, is_label_show=True)
    line.render()

    雷达图-Rader

    from pyecharts import Radar
    radar = Radar("雷达图", "一年的降水量与蒸发量")
    //由于雷达图传入的数据得为多维数据,所以这里需要做一下处理
    radar_data1 = [[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]]
    radar_data2 = [[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]]
    //设置column的最大值,为了雷达图更为直观,这里的月份最大值设置有所不同
    schema = [ 
        ("Jan", 5), ("Feb",10), ("Mar", 10),
        ("Apr", 50), ("May", 50), ("Jun", 200),
        ("Jul", 200), ("Aug", 200), ("Sep", 50),
        ("Oct", 50), ("Nov", 10), ("Dec", 5)
    ]
    //传入坐标
    radar.config(schema)
    radar.add("降水量",radar_data1)
    //一般默认为同一种颜色,这里为了便于区分,需要设置item的颜色
    radar.add("蒸发量",radar_data2,item_color="#1C86EE")
    radar.render()

    散点图-scatter

    from pyecharts import Scatter
    scatter = Scatter("散点图", "一年的降水量与蒸发量")
    //xais_name是设置横坐标名称,这里由于显示问题,还需要将y轴名称与y轴的距离进行设置
    scatter.add("降水量与蒸发量的散点分布", data1,data2,xaxis_name="降水量",yaxis_name="蒸发量",
                yaxis_name_gap=40)
    scatter.render()

    图表布局 Grid(1)---单独的表格

    from pyecharts import Grid
    //设置折线图标题位置
    line = Line("折线图","一年的降水量与蒸发量",title_top="45%")
    line.add("降水量", columns, data1, is_label_show=True)
    line.add("蒸发量", columns, data2, is_label_show=True)
    grid = Grid()
    //设置两个图表的相对位置
    grid.add(bar, grid_bottom="60%")
    grid.add(line, grid_top="60%")
    grid.render()

    图表布局 Grid(2)--合并的表格

    from pyecharts import Overlap
    overlap = Overlap()
    bar = Bar("柱状图-折线图合并", "一年的降水量与蒸发量")
    bar.add("降水量", columns, data1, mark_point=["max", "min"])
    bar.add("蒸发量", columns, data2, mark_point=["max", "min"])
    overlap.add(bar)
    overlap.add(line)
    overlap.render()

    使用pyecharts绘制交互式动态地图

    python调用echart交互式可视化

    参考博文:

    https://www.jianshu.com/p/52dbe714d2f6

    https://blog.csdn.net/weixin_42232219/article/details/90631442

    https://www.jianshu.com/p/554d64470ec9

  • 相关阅读:
    POJ 3253 Fence Repair
    POJ 2431 Expedition
    NYOJ 269 VF
    NYOJ 456 邮票分你一半
    划分数问题 DP
    HDU 1253 胜利大逃亡
    NYOJ 294 Bot Trust
    NYOJ 36 最长公共子序列
    HDU 1555 How many days?
    01背包 (大数据)
  • 原文地址:https://www.cnblogs.com/xingnie/p/12363900.html
Copyright © 2020-2023  润新知