精华内容
下载资源
问答
  • 任务1:将个数据视图在同一页面中进行组合展示 解决思路: 利用pyecharts用的page功能,将个图形封装在同一页面中 使用microsoft-edge对页面中的不同图形进行拖拽布局,并保存到一个jason文件 使用jason文件对...

    任务1:将多个数据视图在同一页面中进行组合展示

    解决思路:

    • 利用pyecharts用的page功能,将多个图形封装在同一页面中
    • 使用microsoft-edge对页面中的不同图形进行拖拽布局,并保存到一个jason文件
    • 使用jason文件对page内容进行渲染呈现
    page1 = Page(layout=Page.DraggablePageLayout)
    #将多个不同的数据视图,封装到一个page对象中
    page1.add(
    bar1,
    pie,
    map)
    #将page1的内容输出到一个html文件中
    page1.render()
    

    接下来使用edge浏览器将输出的html文件打开,并进行拖拽布局,结果保存到一个jason文件中。
    最后使用这个jason文件对page的输出布局进行配置。

    page1.save_resize_html('render.html',cfg_file='chart_config1.json') #其中render.thml是前一步保存的html文件
    #执行完该操作,会输出一个render_resize.html
    
    展开全文
  • from pyecharts import options as opts from pyecharts.charts import Bar, Line from pyecharts.faker import Faker # 数据 v1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3] v2 = ...

    Grid并行多图

    具体请参见:Grid并行多图

    (1)水平放置

    在这里插入图片描述

    from pyecharts import options as opts
    from pyecharts.charts import Grid, Line, Scatter
    from pyecharts.faker import Faker
    from pyecharts.globals import ThemeType
    
    # 散点图
    scatter = (
        Scatter()
        .add_xaxis(Faker.choose()) # x轴
        .add_yaxis("商家A", Faker.values()) 
        .add_yaxis("商家B", Faker.values())
        # 全局配置项
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Grid-Scatter"),
            # 设置图例位置
            legend_opts=opts.LegendOpts(pos_left="20%"),
        )
    )
    
    # 折线图
    line = (
        Line()
        .add_xaxis(Faker.choose()) # x轴
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Grid-Line", pos_right="5%"),
            legend_opts=opts.LegendOpts(pos_right="20%"),
        )
    )
    
    # Grid并行多图
    grid = (
        Grid()
        
        .add(
            scatter, # 图表实例,仅 `Chart` 类或者其子类
            
            # 直角坐标系网格配置项
            # grid 组件离容器左侧的距离。
            # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'left', 'center', 'right'。
            # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
            grid_opts=opts.GridOpts(pos_left="55%"))
        
        
        .add(
            line, # 图表实例,仅 `Chart` 类或者其子类
            
            # grid 组件离容器右侧的距离。
            # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
            grid_opts=opts.GridOpts(pos_right="55%"))
        .render("grid_horizontal.html")
    )
    
    

    (2)竖直放置

    在这里插入图片描述

    from pyecharts import options as opts
    from pyecharts.charts import Bar, Grid, Line
    from pyecharts.faker import Faker
    from pyecharts.globals import ThemeType
    
    # 条形图
    bar = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar"))
    )
    
    # 折线图
    line = (
        Line()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            # 标题位置
            title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%"),
            # 图例位置
            legend_opts=opts.LegendOpts(pos_top="48%"),
        )
    )
    
    grid = (
        Grid(init_opts=opts.InitOpts(theme=ThemeType.INFOGRAPHIC))
        # 通过设置图形相对位置,来调整是整个并行图是竖直放置,还是水平放置
        .add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))
        .add(line, grid_opts=opts.GridOpts(pos_top="60%"))
        .render("grid_vertical.html")
    )
    
    

    (3)Grid_geo_bar

    在这里插入图片描述

    from pyecharts import options as opts
    from pyecharts.charts import Bar, Geo, Grid
    from pyecharts.faker import Faker
    
    # 条形图
    bar = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        # 图例位置
        .set_global_opts(legend_opts=opts.LegendOpts(pos_left="20%"))
    )
    
    
    # 动态热力地图
    geo = (
        Geo()
        .add_schema(maptype="china")
        .add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
        # 标签
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            # 映射
            visualmap_opts=opts.VisualMapOpts(),
            # 主题
            title_opts=opts.TitleOpts(title="Grid-Geo-Bar"),
        )
    )
    
    # Grid并行多图
    grid = (
        Grid()
        # 添加条形图  并设置位置
        .add(bar, grid_opts=opts.GridOpts(pos_top="50%", pos_right="75%"))
        
        # 添加地图
        .add(geo, grid_opts=opts.GridOpts(pos_left="70%"))
        .render("grid_geo_bar.html")
    )
    
    

    (4)重叠(组合)图

    在这里插入图片描述

    from pyecharts import options as opts
    from pyecharts.charts import Bar, Line
    from pyecharts.faker import Faker
    
    # 数据
    v1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
    v2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
    v3 = [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
    
    # 条形图
    bar = (
        Bar()
        .add_xaxis(Faker.months)  # ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
        # 默认轴索引都为0
        .add_yaxis("蒸发量", v1)
        .add_yaxis("降水量", v2)
        
        # 提前配置 折线图 的 y 轴
        .extend_axis(
            # 对新增y轴设置,轴标签为 摄氏度 间隔为5°C
            yaxis=opts.AxisOpts(
                axislabel_opts=opts.LabelOpts(formatter="{value} °C"), interval=5
            )
        )
        
        # 系列配置项   不显示标签
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        
        # 全局配置项
        .set_global_opts(
            # 标题
            title_opts=opts.TitleOpts(title="Overlap-bar+line"),
            # 对条形图的 y 轴进行设置
            yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} ml")),
        )
    )
    
    # 折线图
    line = (
            Line()
            .add_xaxis(Faker.months) # x轴
            .add_yaxis(
                "平均温度", 
                v3, 
                yaxis_index=1  # 上面的条形图默认索引为0,这里设置折线图y 轴索引为1
                )
            )
    
    bar.overlap(line)  # 将折线图重叠到条形图
    bar.render("overlap_bar_line.html")
    
    

    (5)多y轴

    • 所有轴的索引初始值都是0,在多个轴的情况下,按照添加顺序进行排序

    在这里插入图片描述

    from pyecharts import options as opts
    from pyecharts.charts import Bar, Grid, Line
    
    # x 轴数据
    x_data = ["{}月".format(i) for i in range(1, 13)]
    # ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
    
    
    # 条形图
    bar = (
        Bar()
        .add_xaxis(x_data)
        
        # y1
        .add_yaxis(
            "蒸发量",# 系列名称
            [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3], # 系列数据项
            # 添加第一个轴,索引为0,(默认也是0)
            yaxis_index=0,
            
            color="#d14a61", # 系列 label 颜色
        )
        
        
        # y2
        .add_yaxis(
            "降水量", # 系列名称
            [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3], # 系列数据项
            # 添加第二个轴,索引设为1
            yaxis_index=1,
            color="#5793f3", # 系列 label 颜色
        )
        
        
        # 对 y1 轴进行更加细致的配置
        .extend_axis(
            yaxis=opts.AxisOpts(
                name="蒸发量", # 坐标轴名称
                type_="value", # 坐标轴类型  'value': 数值轴,适用于连续数据。
                min_=0,  # 坐标轴刻度最小值
                max_=250,  # 坐标轴刻度最大值
                position="right",  # 轴的位置  右侧
                # 轴线配置
                axisline_opts=opts.AxisLineOpts(
                    # 轴线颜色
                    linestyle_opts=opts.LineStyleOpts(color="#d14a61")
                ),
                # 轴标签显示格式
                axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
            )
        )
        
        # 提前配置 折线图 的 y 轴
        .extend_axis(
            yaxis=opts.AxisOpts(
                type_="value",
                name="温度",
                min_=0,
                max_=25,
                position="left",
                axisline_opts=opts.AxisLineOpts(
                    linestyle_opts=opts.LineStyleOpts(color="#675bba")
                ),
                axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
                # 分割线配置
                splitline_opts=opts.SplitLineOpts(
                    # 显示分割线
                    is_show=True, 
                    # 线样式配置 opacity 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
                    linestyle_opts=opts.LineStyleOpts(opacity=1)
                ),
            )
        )
        
        
        .set_global_opts(
            # 对 y2 轴进行更加细致的配置
            yaxis_opts=opts.AxisOpts(
                name="降水量",
                min_=0,
                max_=250,
                position="right",
                offset=80, # Y 轴相对于默认位置的偏移,在相同的 position 上有多个 Y 轴的时候有用。
                axisline_opts=opts.AxisLineOpts(
                    linestyle_opts=opts.LineStyleOpts(color="#5793f3")
                ),
                axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
            ),
            title_opts=opts.TitleOpts(title="Grid-多 Y 轴示例"),
            # 提示框配置
            tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
        )
    )
    
    
    # 折线图
    line = (
        Line()
        .add_xaxis(x_data)
        .add_yaxis(
            "平均温度",
            [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
            # 折线图对应的y轴索引为2
            yaxis_index=2,
            color="#675bba",
            label_opts=opts.LabelOpts(is_show=False),
        )
    )
    
    
    bar.overlap(line) # 使用overlap(重叠)组件,把折线图重叠在条形图中
    
    # 并行多图
    grid = Grid()
    grid.add(
        bar, # 图表实例,仅 `Chart` 类或者其子类
        
        # 直角坐标系网格配置项
        opts.GridOpts(
            # grid 组件离容器距离
            pos_left="5%",
            pos_right="20%"), 
            # 是否由自己控制 Axis 索引
            is_control_axis_index=True
            
            )
    grid.render("grid_multi_yaxis.html")
    
    

    (6)多 X/Y 轴

    在这里插入图片描述

    from pyecharts import options as opts
    from pyecharts.charts import Bar, Grid, Line
    
    bar = (
        Bar()
        .add_xaxis(["{}月".format(i) for i in range(1, 13)])
        .add_yaxis(
            "蒸发量",
            [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
            yaxis_index=0,
            color="#d14a61",
        )
        .add_yaxis(
            "降水量",
            [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
            yaxis_index=1,
            color="#5793f3",
        )
        .extend_axis(
            yaxis=opts.AxisOpts(
                name="蒸发量",
                type_="value",
                min_=0,
                max_=250,
                position="right",
                axisline_opts=opts.AxisLineOpts(
                    linestyle_opts=opts.LineStyleOpts(color="#d14a61")
                ),
                axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
            )
        )
        .extend_axis(
            yaxis=opts.AxisOpts(
                type_="value",
                name="温度",
                min_=0,
                max_=25,
                position="left",
                axisline_opts=opts.AxisLineOpts(
                    linestyle_opts=opts.LineStyleOpts(color="#675bba")
                ),
                axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
                splitline_opts=opts.SplitLineOpts(
                    is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)
                ),
            )
        )
        .set_global_opts(
            yaxis_opts=opts.AxisOpts(
                name="降水量",
                min_=0,
                max_=250,
                position="right",
                offset=80,
                axisline_opts=opts.AxisLineOpts(
                    linestyle_opts=opts.LineStyleOpts(color="#5793f3")
                ),
                axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
            ),
            title_opts=opts.TitleOpts(title="Grid-Overlap-多 X/Y 轴示例"),
            tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
            legend_opts=opts.LegendOpts(pos_left="25%"),
        )
    )
    
    line = (
        Line()
        .add_xaxis(["{}月".format(i) for i in range(1, 13)])
        .add_yaxis(
            "平均温度",
            [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
            yaxis_index=2,
            color="#675bba",
            label_opts=opts.LabelOpts(is_show=False),
        )
    )
    
    # 上面的代码和上个例子  都是差不多的
    bar1 = (
        Bar()
        .add_xaxis(["{}月".format(i) for i in range(1, 13)])
        .add_yaxis(
            "蒸发量 1",
            [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
            color="#d14a61",
            xaxis_index=1,
            # y轴索引,继上面的 设为3
            yaxis_index=3,
        )
        .add_yaxis(
            "降水量 2",
            [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
            color="#5793f3",
            xaxis_index=1,
            yaxis_index=3,
        )
        .extend_axis(
            yaxis=opts.AxisOpts(
                name="蒸发量",
                type_="value",
                min_=0,
                max_=250,
                position="right",
                axisline_opts=opts.AxisLineOpts(
                    linestyle_opts=opts.LineStyleOpts(color="#d14a61")
                ),
                axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
            )
        )
        .extend_axis(
            yaxis=opts.AxisOpts(
                type_="value",
                name="温度",
                min_=0,
                max_=25,
                position="left",
                axisline_opts=opts.AxisLineOpts(
                    linestyle_opts=opts.LineStyleOpts(color="#675bba")
                ),
                axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
                splitline_opts=opts.SplitLineOpts(
                    is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)
                ),
            )
        )
        .set_global_opts(
            xaxis_opts=opts.AxisOpts(grid_index=1),
            yaxis_opts=opts.AxisOpts(
                name="降水量",
                min_=0,
                max_=250,
                position="right",
                offset=80,
                # 直角坐标系网格索引
                grid_index=1,
                axisline_opts=opts.AxisLineOpts(
                    linestyle_opts=opts.LineStyleOpts(color="#5793f3")
                ),
                axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
            ),
            tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
            legend_opts=opts.LegendOpts(pos_left="65%"),
        )
    )
    
    line1 = (
        Line()
        .add_xaxis(["{}月".format(i) for i in range(1, 13)])
        .add_yaxis(
            "平均温度 1",
            [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
            color="#675bba",
            label_opts=opts.LabelOpts(is_show=False),
            # 新增了一个 x轴的索引,上面的line中x轴的索引为0
            xaxis_index=1,
             
            yaxis_index=5,
        )
    )
    
    overlap_1 = bar.overlap(line)
    overlap_2 = bar1.overlap(line1)
    
    
    # 使用grid将overlap_1和overlap_2进行水平并行放置
    grid = (
            # 初始化
        Grid(init_opts=opts.InitOpts(width="1200px", height="800px"))
        .add(
            overlap_1, grid_opts=opts.GridOpts(pos_right="58%"), 
            # 是否由自己控制 Axis 索引
            is_control_axis_index=True
        )
        .add(overlap_2, grid_opts=opts.GridOpts(pos_left="58%"), is_control_axis_index=True)
        .render("grid_overlap_multi_xy_axis.html")
    )
    

    还可以参考:pyecharts 之神奇的轴索引

    展开全文
  • range_text=['数量','数量少'], pos_top='600px',pos_left='600px' )) ``` 当map和bar通过grid组合时visualmap_opts会无效,没有颜色 通过实验在bar中设置visualmap_opts会应用到组合map中,但这时map和bar的...
  • 在实际工作中,我们可能会遇到需要将不同量级的个系列数据放到同一个中的需求,比如我们在成本核算的时候需要展示当天的成本是多少,收入是多少,然后对应当天的ROI是多少,成本和收入通常都是比较大的数值,而...

    前言

    • 效果展示
      在这里插入图片描述
    • 在实际工作中,我们可能会遇到需要将不同量级的多个系列数据放到同一个图中的需求,比如我们在成本核算的时候需要展示当天的成本是多少,收入是多少,然后对应当天的ROI是多少,成本和收入通常都是比较大的数值,而ROI通常是约等于1的比率,这时最好的办法便是成本和收入通过直方图展示,ROI通过折线图来展示,折线图和直方图分别对应不同的Y轴。

    代码

    代码中有以下三点需要注意:

    1. 添加Y轴
      bar = Bar(init_opts=opts.InitOpts(theme='light',
                                        width='1000px',
                                        height='600px'))
      bar.add_xaxis(x_data)
      # 添加一个Y轴
      bar.extend_axis(yaxis=opts.AxisOpts())
      
      先新建一个Bar实例,再通过.extend_axis()添加一个Y轴,通过yaxis设置Y轴配置,此处不能为空,同理如果是添加一个X轴则是bar.extend_axis(xaxis=opts.AxisOpts());
    2. 指定使用的Y轴;
      bar.add_yaxis('左边Y轴', y_data_1, yaxis_index=0)
      
      通过.add_yaxis添加y轴数据时候需要指定yaxis_index,默认使用yaxis_index=0;
    3. 将折线图置于上层
      为了不让直方图遮挡祝折线图,我们需要将折线图置于整个图表上层
      line.add_yaxis('右边Y轴', y_data_2, yaxis_index=1, z_level=1)
      
      在添加折线图的Y轴数据的时候我们需要指定z_level=1,这里设置一个大于0的数值就好,默认的z_level是等于0的;

    完整代码

    from pyecharts.charts import *
    from pyecharts import options as opts
    import random
    
    x_data = ['香蕉', '梨子', '水蜜桃', '核桃', '西瓜', '苹果']
    y_data_1 = [random.randint(10, 50) for _ in range(len(x_data))]
    y_data_2 = [random.randint(100, 500) for _ in range(len(x_data))]
    
    
    def bar_line_combine_with_two_axis():
        bar = Bar(init_opts=opts.InitOpts(theme='light',
                                          width='1000px',
                                          height='600px'))
        bar.add_xaxis(x_data)
        # 添加一个Y轴
        bar.extend_axis(yaxis=opts.AxisOpts())
        bar.add_yaxis('左边Y轴', y_data_1, yaxis_index=0)
    
        line = Line(init_opts=opts.InitOpts(theme='light',
                                            width='1000px',
                                            height='600px'))
        line.add_xaxis(x_data)
        # 指定使用Y轴,默认yaxis_index=0
        # 设置z_level=1,将折线图显示在直方图上层
        line.add_yaxis('右边Y轴', y_data_2, yaxis_index=1, z_level=1)
    
        bar.overlap(line)
        return bar
    
    
    if __name__ == '__main__':
        chart = bar_line_combine_with_two_axis()
        chart.render(path='chart_output/bar_line_combine_with_two_axis.html')
    
    • 效果展示
      在这里插入图片描述
    展开全文
  • 文章目录pyecharts 介绍和安装特性pyecharts 安装版本检查pyecharts 折线绘制一个简单的折线Line 增加标题与图例Line 增加提示项pyecharts Bar 柱状设置组柱状折线 + 柱状 组合pyecharts Pie 饼图...

    针对数据分析团队需求,简单整理了一些相关内容分享同步大家学习,旨在帮助机器学习人员、数据分析人员、NLP算法人员快速了解业务数据,针对性解决工程中面临的问题。

    pyecharts 介绍和安装

    ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

    1. Echarts 百度开源可视化工具
      http://echarts.baidu.com
    2. pyecharts: 国内大神实现Python 调用echarts 库

    特性

    • 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
    • 囊括了 30+ 种常见图表,应有尽有
    • 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
    • 可轻松集成至 Flask,Django 等主流 Web 框架
    • 高度灵活的配置项,可轻松搭配出精美的图表
    • 详细的文档和示例,帮助开发者更快的上手项目
    • 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持

    pyecharts 安装

    安装库 pip3 install pyecharts

    如果需要绘制地理图相关内容,需要一并安装如下内容:

    安装地图文件

    全球国家地图: echarts-countries-pypkg

    中国省级地图: echarts-china-provinces-pypkg

    中国市级地图: echarts-china-cities-pypkg

    全部直接使用python的pip安装,安装好之后,就可以使用了

    pip3 install pyecharts
    pip3 install echarts-countries-pypkg
    pip3 install echarts-china-provinces-pypkg
    pip3 install echarts-china-cities-pypkg

    使用版本说明:

    1. Python 版本: 3.7.x
    2. pyecharts: 1.x

    版本检查

    import pyecharts
    
    pyecharts.__version__
    
    '1.2.1'
    

    pyecharts 折线图

    绘制一个简单的折线图

    # 导入库
    import pyecharts.options as opts
    from pyecharts.charts import Line
    
    # 绘制散点图数据
    x = ['seaborn','matplotlib','plotly','pyecharts','python']
    y1 = [440,550,770,450,800]
    y2 = [570,1340,1370,1111,2222]
    
    # 定义Line Charts 的函数
    def line_charts()->Line:
        c = Line()
        c.add_xaxis(xaxis_data=x)
        c.add_yaxis(series_name='',y_axis=y1)
        c.add_yaxis(series_name='',y_axis=y2)
        return c
    
    # 绘制图表
    c = line_charts()
    c.render_notebook()
    

    在这里插入图片描述

    Line 增加标题与图例

    # 导入库
    import pyecharts.options as opts
    from pyecharts.charts import Line
    # 绘制散点图数据
    x = ['seaborn','matplotlib','plotly','pyecharts','python']
    y1 = [440,550,770,450,800]
    y2 = [570,1340,1370,1111,2222]
    # 定义Line Charts 的函数
    def line_charts()->Line:
        c = Line()
        c.add_xaxis(xaxis_data=x)
        c.add_yaxis(series_name='A',y_axis=y1)
        c.add_yaxis(series_name='B',y_axis=y2)
        
        # 数据项设置
        c.set_global_opts(
            title_opts=opts.TitleOpts(title='数量统计'),
            legend_opts=opts.LegendOpts(is_show=True)# is_show = True 默认-展示图例
        )
        return c
    
    # 绘制图表
    c = line_charts()
    c.render_notebook()
    

    在这里插入图片描述

    Line 增加提示项

    pyecharts 中提供累TooltipOpts

    trigger 触发类型。可选:

    item: 数据项图形触发,主要用于散点图,饼图

    axis:坐标轴触发,主要用在状图,折线图
    none: 什么都不做

    # 导入库
    import pyecharts.options as opts
    from pyecharts.charts import Line
    # 绘制散点图数据
    x = ['seaborn','matplotlib','plotly','pyecharts','python']
    y1 = [440,550,770,450,800]
    y2 = [570,1340,1370,1111,2222]
    # 定义Line Charts 的函数
    def line_charts()->Line:
        c = Line()
        c.add_xaxis(xaxis_data=x)
        c.add_yaxis(series_name='A',y_axis=y1)
        c.add_yaxis(series_name='B',y_axis=y2)
        
        # 数据项设置 ,全局设置一次
        c.set_global_opts(
            title_opts=opts.TitleOpts(title='数量统计'),
            legend_opts=opts.LegendOpts(is_show=True),# is_show = True 默认-展示图例
            tooltip_opts=opts.TooltipOpts(trigger='axis',axis_pointer_type='cross')
        )
        
        #c.set_global_opts(tooltip_opts=opts.TooltipOpts(trigger='axis',axis_pointer_type='cross'))
        return c
    
    # 绘制图表
    c = line_charts()
    c.render_notebook()
    

    在这里插入图片描述

    pyecharts Bar 柱状图

    pyecharts 全局参数设置
    jupyter notebook 和 pycharm 基本图表绘制
    如何绘制一个简单Bar 图
    坐标轴文本倾斜设置
    设置图表大小
    封装一些绘制图表的函数
    设置多组的柱状图
    设置图例
    区域缩放的配置项

    设置多组柱状图

    from pyecharts import  options as opts
    from pyecharts.charts import Bar
    
    
    def bar_charts()->Bar():
    
        '''
        定义一个返回pyecharts Bar 的函数
    
        :return:
        '''
        x = ['seaborn', 'plotly', 'pyecharts']
        y1 = [1140, 559, 270]
        y2 = [570,1340,1370] 
    
        c = Bar(init_opts=opts.InitOpts(width='1000px',height='600px'))
        c.add_xaxis(xaxis_data=x)
        c.add_yaxis(series_name='',yaxis_data=y1)
        c.add_yaxis(series_name='',yaxis_data=y2)
    
        c.reversal_axis()
    
        c.set_global_opts(
    
            title_opts=opts.TitleOpts(title=''),
            yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=60))
        )
        return c
    c = bar_charts()
    c.render_notebook()
    

    在这里插入图片描述

    折线图 + 柱状图 组合

    柱状图: y 轴显示 指标1
    折线图: y 轴显示 指标2

    from pyecharts import options as opts
    from pyecharts.charts import Bar,Line
    
    x = ['Python','Seaborn','Plotly','pyecharts']
    # 绘制柱状图方法
    def bar_charts()->Bar():
        
        y1 = [1140, 559, 270,1200]
        y2 = [570,1340,1370,900]
        bar = Bar(init_opts=opts.InitOpts(width='1000px',height='600px'))
        bar.add_xaxis(xaxis_data=x)
        bar.add_yaxis(series_name='A',yaxis_data=y1,label_opts=opts.LabelOpts(is_show=False))
        bar.add_yaxis(series_name='B',yaxis_data=y2,label_opts=opts.LabelOpts(is_show=False))
    
        bar.set_global_opts(title_opts=opts.TitleOpts(title='统计'))
        
        # bar 扩展
        bar.extend_axis(
            yaxis=opts.AxisOpts(
                name='价格',
                type_='value',
                min_=0,
                max_=200,
                interval=10,
                axislabel_opts=opts.LabelOpts(formatter='{value} 元')) # value
        )
        return bar
    
    
    # 绘制Line 方法
    def line_charts()->Line():
        y = [159,29,49,79]
        c = Line()
        c.add_xaxis(xaxis_data=x)
        c.add_yaxis(series_name='价格',yaxis_index=1,y_axis= y,label_opts=opts.LabelOpts(is_show=False))
        return c
    
    
    # Bar + Line 
    bar = bar_charts()
    line = line_charts()
    
    bar.overlap(line).render_notebook()
    
    

    在这里插入图片描述

    pyecharts Pie 饼图

    pyecharts 第一个Pie 饼图

    Pie 需要的数据格式:

    [[x1,y1],[x2,y2]]

    绘制饼图的操作步骤:

    • 构建Pie 的数据
    • 为Pie 示例对象添加数据
    • 设置标题
    • 设置每一项占比

    我们分析一些我的一些课程不同的来源销售的占比

    from pyecharts.charts import  Pie
    from pyecharts import  options as opts
    
    # 构建Pie的数据
    x_data = ['直接访问','营销推广','博客推广','搜索引擎']
    y_data = [830,214,300,1100]
    
    # Pie 设置指定的格式
    data_pair = [list(z) for z in  list(zip(x_data,y_data))]
    print(data_pair)
    
    [['直接访问', 830], ['营销推广', 214], ['博客推广', 300], ['搜索引擎', 1100]]
    
    def pie_charts()->Pie:
        c = Pie(init_opts=opts.InitOpts(width='500px',height='500px'))
        c.add(series_name='访问来源',data_pair=data_pair)
    
        # 设置全局项
        c.set_global_opts(title_opts=opts.TitleOpts(title='不同的来源的销售分析',pos_left='center',pos_top=20))
    
        # 设置每项数据占比
        c.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter="{a} <br/> {b}:{c} ({d}%)"))
        return c
    
    
    c  = pie_charts()
    c.render_notebook()
    

    在这里插入图片描述

    pyechart 圆弧状Pie

    from pyecharts.charts import  Pie
    from pyecharts import  options as opts
    
    # 构建Pie的数据
    x_data = ['直接访问','营销推广','博客推广','搜索引擎']
    y_data = [830,214,300,1100]
    
    # Pie 设置指定的格式
    data_pair = [list(z) for z in  list(zip(x_data,y_data))]
    print(data_pair)
    
    [['直接访问', 830], ['营销推广', 214], ['博客推广', 300], ['搜索引擎', 1100]]
    
    def pie_radius_charts()->Pie:
        c = Pie()
        c.add(series_name='访问来源',data_pair=data_pair,radius=['40%','75%'])
        
        c.set_global_opts(
            title_opts=opts.TitleOpts(title='不同销售来源'),
            legend_opts=opts.LegendOpts(orient='vertical',pos_top='15%',pos_left='2%')
        )
        
        # 设置每项数据占比
        c.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter="{a} <br/> {b}:{c} ({d}%)"))
        return c 
    
    
    c = pie_radius_charts()
    c.render_notebook()
    

    在这里插入图片描述

    pyecharts scatter 散点图

    figsize = opts.InitOpts(width='800px',height='300px')
    scatter = Scatter(init_opts=figsize)
    scatter.add_xaxis(xaxis_data=x_data)
    
    scatter.add_yaxis(
        series_name='y = sin(x) 函数散点图', # 图例名称
        y_axis = y1,#数据
        label_opts=opts.LabelOpts(is_show=False))# 设置 数据点是否展示
    
    scatter.add_yaxis(
        series_name='y = cos(x) 函数散点图',
        y_axis = y2,
        label_opts=opts.LabelOpts(is_show=False)
    )
    
    scatter.set_global_opts(title_opts=opts.TitleOpts(title='第一个散点图',pos_top='20px',pos_left='center'))
    scatter.render_notebook()
    

    在这里插入图片描述

    pyecharts WordCloud 词云

    import pyecharts.options as opts
    from pyecharts.charts import WordCloud
    data = [
        ('宁泽涛女友',4583345),
        ('日学者发现侵华日军使用毒气铁证',2324539),
        ('伦敦眼惊现摩斯密码',2296099),
        ('网友请愿追责丛林法则节目组',1376545),
        ('寒门女孩清华毕业典礼上发言',1337607)
    ]
    c = WordCloud()
    c.add(series_name='',data_pair=data)
    c.set_global_opts(title_opts=opts.TitleOpts(title='热词分析'))
    c.render_notebook()
    

    在这里插入图片描述

    pyecharts geo 地理图

    如果需要绘制地理图相关内容,需要一并安装如下内容:

    安装地图文件

    全球国家地图: echarts-countries-pypkg

    中国省级地图: echarts-china-provinces-pypkg

    中国市级地图: echarts-china-cities-pypkg

    全部直接使用python的pip安装,安装好之后,就可以使用了

    pip3 install pyecharts

    pip3 install echarts-countries-pypkg

    pip3 install echarts-china-provinces-pypkg

    pip3 install echarts-china-cities-pypkg

    本课程使用版本说明:

    Python 版本: 3.7.x

    pyecharts: 1.x

    导入库

    from pyecharts import options as opts
    from pyecharts.charts import Geo
    from pyecharts.globals import ChartType
    
    import pyecharts
    
    import warnings
    warnings.filterwarnings('ignore')
    
    print('pyecharts version=',pyecharts.__version__)
    
    pyecharts version= 1.2.1
    

    绘制地理图表

    def geo_charts()->Geo:
        
        data = [['广东',104320459],['山东',95792719],['河南',94029939]]
    
        print(data)
        c = Geo()
        c.add_schema(maptype='china',is_roam=False,label_opts=opts.LabelOpts(is_show=True))
        c.add('geo',data,type_=ChartType.EFFECT_SCATTER,symbol_size=12,symbol='pin')
        c.set_global_opts(title_opts=opts.TitleOpts(title='geo-案例'),legend_opts=opts.LegendOpts(is_show=True))
        c.render_notebook()
        return c
    
    
    c = geo_charts()
    c.render_notebook()
    

    在这里插入图片描述

    业务案例分析

    • 一般业务方提供数据,多数是csv和txt等文本数据。
    • 如果数据量,多数存储hadoop 的hdfs(分布式文件系统)
    • 可以采用spark或者mapreduce 进行基础数据分析统计
    • 基础指标获取后,可以使用python 的一些可视化工具库进行展示

    彻底掌握对业务的数据分析,你需要掌握的工具:hadoop,spark ,python,numpy ,pandas ,seaborn ,pyecharts ,matplotlib 。具体更多内容,大家可以相互交流。

    在这里插入图片描述

    展开全文
  • 可能最容易想到的方式就是通过组合图表来实现,因为正常情况下,Pyecharts中单个图表并不能支持个标题配置,但后面查阅了echarts的文档后发现,其实在echarts中是可以标题的。 在Pyecharts中具体的实现方式如下...
  • 雷达是以从同一点开始的轴上表示的三个或更个定量变量的二维图表的形式显示变量数据的图形方法。轴的相对位置和角度通常是无信息的。 雷达也称为网络,蜘蛛,星图,蜘蛛网,不规则多边形,极坐标或...
  • 1、pyecharts前言与安装2、pyecharts绘图实现anaconda(图片是可动态的,这里展示静态图片)2.1制作动态--饼图、环形组合图2.2制作动态--玫瑰、环形组合图2.3制作动态--条形且添加一条均值线2.4制作动态--个环形...
  • from pyecharts import options as opts from pyecharts.charts import Bar, Grid, Line, Page bar = ( Bar() .add_xaxis(["{}月".format(i) for i in range(1, 13)]) .add_yaxis( "蒸发量", [2.0, 4.9, 7.0, ...
  • 如上所示,在一个图表中包含个饼图,不同于组合图表,这里虽然是个饼图,但个饼图都是用同一个标题,配色,图例等等,除了位置不一样,其他全局配置都是一致的。 完整示例 完整代码 #!/usr/bin/env python #...
  • 其中page帮助我们将个模块垂直组合到一个页面中,grid帮助我们将个单元素(、表、overlap、图片)水平或垂直并列布局。 先从相对简单的page说起。 一、 令图表垂直布局——Page 首先import类
  • 数据可视化之Pyecharts制作酷炫图表

    千次阅读 2020-04-20 13:55:19
    本文将从相关特性、版本安装、绘图步骤、图表示例、图表组合、应用总结 等个6方面进行详细介绍,文章较长干货较,建议先收藏再细看。获取完整源码见文末。 微信公众号原文链接 一. 相关特性 简洁的 API 设计,...
  • pyecharts提供了一些坐标轴,图表组合功能,动画播放功能; 在本文中第一段代码是通过geo展现三千个地级市、县级市的热力,第二段代码是播放从1950年-2010年各省直辖市自治区GDP的发展情况;第三段代码是以...
  • 文章目录Grid 组合组件 5例阅读和使用方法Demo案例及视频图表合并显示个Y轴刻度组合图折线图、柱状图组合图表柱状图、地理图组合图表折线图、散点图组合图 Grid 组合组件 5例 Python在处理各种数据时,利用图表 ...
  • Python读取本地文件、处理数据并进行可视化展现相关资料Python读取本地文件Python读取mysql内的数据并处理Python读取Excel内的数据并处理Pyecharts可视化pyecharts柱状图pyecharts折线图pyecharts组合图 Python读取...
  • Day44.Python数据可视化(2)

    千次阅读 多人点赞 2021-04-20 12:41:42
    Python数据可视化(2) ... Pyecharts 可视化2.1 散点图2.2 折线图2.3 饼图2.4 玫瑰图2.5 柱状图2.6 并行多图(上下)2.7 并行多图(左右)2.8 柱状图与折线图的组合三. Pyecharts 地理图标3.1 中国地图3.2
  • 今天提供过去原创的 10 个 Python 可视化,源码全部开放下载!...能力评价雷达,使用pyecharts轻松实现轮播功能: 5饼图 做图不仅要美观,更要实用,下面饼图传递的信息,相当直观,使...
  • 2020年遭遇了百年不遇的黑天鹅事件——新冠肺炎疫情,这次疫情无论是对国家还是对个人都带来了不小的挑战。...上面的动态排名图(时间轮播多图,此图为组合图表)是通过Python中pandas库与pyecharts库实现,其中pan
  • 组合图绘制 代码最好敲几遍,然后保存至自己容易找到的地方 后续如果需要直接拷贝修改关键参数直接使用即可 其他可视化相关模块及工具 matplotlib seaborn echarts highcharts pyecharts # 界面交互性更强 ...
  • click:一个通过组合的方式来创建精美命令行界面的包。 cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。 clint:Python 命令行程序工具。 docopt:Python 风格的命令行参数解析器。 ...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

pyecharts多图组合