精华内容
下载资源
问答
  • Excel作图

    千次阅读 2019-05-21 21:51:51
    数据集下载: 链接:https://pan.baidu.com/s/1sCaFkQ9DoxYE-FyiY2ewPA 提取码... 任务一:统计各个城市对于数据分析师的需求情况 任务二:统计对求职者学历要求的情况 任务三:统计对求职者工作经验要求的情况 ...

    在这里插入图片描述
    数据集下载:

    任务一:统计各个城市对于数据分析师的需求情况

    在这里插入图片描述
    任务二:统计对求职者学历要求的情况
    在这里插入图片描述
    任务三:统计对求职者工作经验要求的情况
    在这里插入图片描述
    任务四:统计各种职位的需求情况
    在这里插入图片描述
    任务五:统计不同城市不同行业对于数据分析师的需求情况
    在这里插入图片描述
    任务六:统计不同城市的平均工资水平情况
    在这里插入图片描述
    任务七:统计不同行业的平均工资水平情况
    在这里插入图片描述
    任务八:分别统计北京, 上海,深圳,广州四个城市 不同行业和学历的工资分布情况
    在这里插入图片描述
    任务九:分别统计北京, 上海,深圳,广州四个城市 不同行业和工作年限的工资分布情况
    在这里插入图片描述

    展开全文
  • 使用python导入Excel作图 使用Excel数据作图: import pandas as pd import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1.inset_locator import inset_axes from matplotlib.patches ...

    使用python导入Excel作图

    使用Excel数据作图:

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.axes_grid1.inset_locator import inset_axes
    from matplotlib.patches import ConnectionPatch
    
    # 读取数据
    x_axis_data = []
    y1_axis_data = []
    y2_axis_data = []
    y3_axis_data = []
    y4_axis_data = []
    sheet = pd.read_excel(r"C:\Users\Think\Desktop\123.xlsx")
    
    #数据赋值
    def get():
        for row in sheet.index.values:
            doc = dict()
            doc['key1'] = sheet.iloc[row, 0]
            x_axis_data.append(doc['key1'])
            doc['key2'] = sheet.iloc[row, 1]
            y1_axis_data.append(doc['key2'])
            # doc['key3'] = sheet.iloc[row, 2]
            # y2_axis_data.append(doc['key3'])
            # doc['key4'] = sheet.iloc[row, 3]
            # y3_axis_data.append(doc['key4'])
            # doc['key5'] = sheet.iloc[row, 4]
            # y4_axis_data.append(doc['key5'])
    
    # 进行绘图
    def huitu():
        plt.figure(figsize=(15, 5))  # 设置画布的尺寸
        plt.title('The performance of the network under different data sets', fontsize=30)  # 标题,并设定字号大小
        plt.xlabel(u'epoch', fontsize=30)  # 设置x轴,并设定字号大小
        plt.tick_params(labelsize=28)  # 刻度字体的大小
        plt.ylabel(u'PSNR', fontsize=30)  # 设置y轴,并设定字号大小
        plt.grid(True)   # 是否显示网格线
        # 设置坐标轴范围
        plt.ylim((1, 33))
        plt.xlim((0, 100))
    
        # 设置坐标轴刻度
        y_ticks = np.arange(1, 33, 1)
        x_ticks = np.arange(0, 100, 10)
        plt.xticks(x_ticks)
        plt.yticks(y_ticks)
    
        # color:颜色,linewidth:线宽,linestyle:线条类型,label:图例,marker:数据点的类型
        plt.plot(x_axis_data, y1_axis_data, color="deeppink", linewidth=1, linestyle='--', label='Set5', marker='+')
        # plt.plot(x_axis_data, y2_axis_data, color="darkblue", linewidth=1.5, linestyle=':', label='Set14', marker='*')
        # plt.plot(x_axis_data, y3_axis_data, color="red", linewidth=1, linestyle='--', label='BSDS100', marker='+')
        # plt.plot(x_axis_data, y4_axis_data, color="green", linewidth=1, linestyle=':', label='urban', marker='+')
    
        plt.rcParams.update({'font.size': 22})  # 图例字体的大小
        plt.legend(loc=4)  # 图例展示位置,数字代表第几象限
        return plt.show()  # 显示图像
    
    get()
    huitu()  # 只进行绘图
    
    

    对Excel局部的数据进行放大

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.axes_grid1.inset_locator import inset_axes
    from matplotlib.patches import ConnectionPatch
    
    # 读取数据
    x_axis_data = []
    y1_axis_data = []
    y2_axis_data = []
    y3_axis_data = []
    y4_axis_data = []
    sheet = pd.read_excel(r"C:\Users\Think\Desktop\123.xlsx")
    
    #数据赋值
    def get():
        for row in sheet.index.values:
            doc = dict()
            doc['key1'] = sheet.iloc[row, 0]
            x_axis_data.append(doc['key1'])
            doc['key2'] = sheet.iloc[row, 1]
            y1_axis_data.append(doc['key2'])
            # doc['key3'] = sheet.iloc[row, 2]
            # y2_axis_data.append(doc['key3'])
            # doc['key4'] = sheet.iloc[row, 3]
            # y3_axis_data.append(doc['key4'])
            # doc['key5'] = sheet.iloc[row, 4]
            # y4_axis_data.append(doc['key5'])
    
    # 进行绘图
    def huitu_plus():
        fig, ax = plt.subplots(1, 1)   # 其中fig, ax = plt.subplots(a,b)用来控制子图个数:a为行数,b为列数
        #ax.plot(x_axis_data, y_axis_data, color='#4169E1', alpha=0.8, label='$1*10^{-5}$')
        ax.plot(x_axis_data, y1_axis_data, color="deeppink", linewidth=2, linestyle=':', label='PSNR', marker='o')
        # ax.plot(x_axis_data, reward_demaddpg10, color='#848484', alpha=0.8, label='$5*10^{-6}$')
        # ax.plot(x_axis_data, reward_demaddpg15, color='#FF774A', alpha=0.8, label='$1*10^{-6}$')
        # ax.plot(x_axis_data, reward_demaddpg20, color='#575B20', alpha=0.8, label='$5*10^{-7}$')
        # ax.plot(x_axis_data, reward_demaddpg25, color='#B84D37', alpha=0.8, label='$1*10^{-7}$')
        plt.legend(loc=4)  # 图例展示位置,数字代表第几象限
        ax.set_xlabel('Episodes')  #横坐标的标签
        ax.set_ylabel('Total reward')   # 纵坐标的标签
    
        axins = inset_axes(ax, width="40%", height="30%", loc='lower left',
                           bbox_to_anchor=(0.3, 0.1, 1, 1),
                           bbox_transform=ax.transAxes)
        # ax父坐标系;
        # width, height:子坐标系的宽度和高度(百分比形式或者浮点数个数)
        # loc:子坐标系的位置;
        # bbox_to_anchor:边界框,四元数组(x0, y0, width, height) ;
        # axins:子坐标系
    
        #  axins = ax.inset_axes((0.2, 0.2, 0.4, 0.3))  和上面表达式的效果一样
    
        axins.plot(x_axis_data, y1_axis_data, color='#4169E1', alpha=0.8, label='$1*10^{-5}$')
    
        # 设置放大区间
        zone_left = 2
        zone_right = 5
    
        # 坐标轴的扩展比例(根据实际数据调整)
        x_ratio = 0  # x轴显示范围的扩展比例
        y_ratio = 0.05  # y轴显示范围的扩展比例
    
        # X轴的显示范围
        xlim0 = x_axis_data[zone_left]-(x_axis_data[zone_right]-x_axis_data[zone_left])*x_ratio
        xlim1 = x_axis_data[zone_right]+(x_axis_data[zone_right]-x_axis_data[zone_left])*x_ratio
    
        # Y轴的显示范围
        y = np.hstack(y1_axis_data[zone_left:zone_right])
        ylim0 = np.min(y)-(np.max(y)-np.min(y))*y_ratio
        ylim1 = np.max(y)+(np.max(y)-np.min(y))*y_ratio
    
        # 调整子坐标系的显示范围
        axins.set_xlim(xlim0, xlim1)
        axins.set_ylim(ylim0, ylim1)
    
    
        # 原图中画方框
        tx0 = xlim0
        tx1 = xlim1
        ty0 = ylim0
        ty1 = ylim1
        sx = [tx0,tx1,tx1,tx0,tx0]
        sy = [ty0,ty0,ty1,ty1,ty0]
        ax.plot(sx,sy,"blue")       #(tx0,ty0)为一个坐标点、类推
    
        # 画两条线
        xy = (xlim0,ylim0)
        xy2 = (xlim0,ylim1)
        con = ConnectionPatch(xyA=xy2,xyB=xy,coordsA="data",coordsB="data",
                axesA=axins,axesB=ax)
        axins.add_artist(con)
    
        xy = (xlim1,ylim0)
        xy2 = (xlim1,ylim1)
        con = ConnectionPatch(xyA=xy2,xyB=xy,coordsA="data",coordsB="data",
                axesA=axins,axesB=ax)
        axins.add_artist(con)
    
        return plt.show()
    
    get()
    huitu_plus()  # 只进行绘图
    
    
    展开全文
  • excel作图胜过CAD

    2011-09-13 19:58:51
    很牛逼的excel作图,至今为止我都没有搞懂究竟是怎么做出来的
  • 在平时工作或者学习过程中经常可能需要用到Excel作图的功能,很多具体作图的功能都可以现学现用或者需要的时候再学习如何使用。 对于两组数据对比的分析作图:以该图为例 图1 一.准备数据 图2 该数据可以...

    在平时工作或者学习过程中经常可能需要用到Excel作图的功能,很多具体作图的功能都可以现学现用或者需要的时候再学习如何使用。

    对于两组数据对比的分析作图:以该图为例

                                                   图1

    一.准备数据 

                                                       图2 

    该数据可以看出是两组不同的采集频率的数据源,意味着他们的时间间隔不一致。

    二.作图

    作图的思想类似于:先在画布上做10Hz 的时间和Pressure的图,然后再选择添加另一组数据源

    作图思考可以参考:https://www.jb51.net/office/excel/549944.html

    三.更改系列名称

    默认的图表的系列名称为系列1,系列2

    通过对数据源的作图系列名称更改实现想要的系列名称

    参考:https://jingyan.baidu.com/article/3f16e00318d4582591c103ef.html

    但实际在作图之后,有时的的系列名称出来的是带格式和符号的如:

                                         图 3

    在此图中就是把10 Hz替换为你想要的系列名称,而不是直接在系列名称里更改。

     

    总结:

    现在很多不同版本的Excel作图的更改等工程也一直在变化,保持与时俱进,不断学习进步。不断的搜索,学习,实践,分享经验,……

    循环往复,最终一代大牛养成!

     

     

     

    展开全文
  • 10年前, 偶然看到一本excel图表书籍《图表之道》,当时惊叹excel作图也能如此商务, 连续几天看完了全书, 自己对图表的喜爱也是从那时开始。 现在除了excel, 我们有更多的工具可以做出好看、交互性强的图表, 比如...

    10年前, 偶然看到一本excel图表书籍《图表之道》,当时惊叹excel作图也能如此商务, 连续几天看完了全书, 自己对图表的喜爱也是从那时开始。

    除了excel, 现在有更多的工具可以做出好看、交互性强的图表, 比如python中的pyechart, 如果不懂编程该如何作图呢?

    本文将介绍十余种工作中图表制作方法, 提供完整代码, 大家可从模仿中入门python数据可视化!

    每个图的侧重点:

    • 1 世界地图: 数据如何同图表中国家关联
    • 2 曲线图: 设置多条曲线, 曲线设置不同样式
    • 3 组合图: 设置图表间距
    • 4 帕累托图: 突出标记某个点
    • 5 曲线图: 次坐标变主坐标, x轴为日期数据
    • 6 中国地图: 数据如何同图表中省份关联
    • 7 中国地图: 设置移动轨迹
    • 8 世界地图: 图例,布局设置
    • 9 组合图: 双坐标轴
    • 10 中国地图: 添加多个城市数据, 用散点显示
    • 11 组合图: 图表简洁风格设置
    • 12 仪表盘: 8个图表生成一个仪表盘布局
    • 13 仪表盘: 自定义图表背景图

    在这里插入图片描述

    在这里插入图片描述
    提前准备: 安装工具

    • 安装Anaconda软件
      下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
      使用jupyter notebook 或者spyder
    • 安装pyechart工具包
      pyechart工具包有1.0版本和0.5版本, 请下载1.0以上版本
    pip install pyecharts -U
    

    作图中有很多地方涉及颜色参数调整, 强烈建议将以下网址收藏:

    https://colorhunt.co/palettes/blue
    

    可以挑选你喜欢的搭配

    工具包及主要参数介绍

    不同模块中用法可能不一样, 详细请参考官网: pyechart官网

    • options: pyechart中图表选项模块, 可设置图表各种参数, 在 pyecharts 中,一切皆 Options

    • pyecharts.charts: pyechart中作图模块. 如果在网上看到的代码是from pyecharts import Map, 说明使用的0.5版本的pyechart, 建议不用再看,两个版本不兼容

    • Map, Line, Bar,Pie: pyechart中具体的作图模块, 实例化例如:Map() , 可设置图表大小和主题风格

      • width : 图表宽度
      • height: 图表高度
      • theme: 图表风格: ‘chalk’,‘dark’, # 黑色背景适合地图 ‘essos’ ‘infographic’,‘light’,‘macarons’,‘purple-passion’, # 灰色背景适合地图 ‘roma’,‘romantic’, # 灰色背景 适合地图 ‘shine’,‘vintage’, #浅粉色 适合地图’walden’, ‘westeros’, # 蓝色’white’, # 黑红 ‘wonderland’
    • pd.read_excel() : 读取数据

    • add(): 添加数据 , 一般为series, 或列表列表或元组列表

    • add_xaxis: 添加x轴数据, 需要是列表

    • add_yaxis: 添加一个系列

    • set_series_opts: 图表系列设置. 数据标签label_opts

    • set_global_opts: 图表全局设置. 标题title_opts, 视觉映射visualmap_opts, 图例legend_opts, 提示框tooltip_opts, y轴yaxis_opts, x轴xaxis_opts

    • render() : 输出html文件

    • extend_axis: 添加次坐标轴

    • overlap() : 图表组合

    • add_schema(): 设置风格

    • reversal_axis(): 坐标轴旋转, 条形图

    模板1:世界地图

    作图数据与效果
    代码:

    # 导入工具包
    import pandas as pd
    from pyecharts import options as opts
    from pyecharts.charts import Map
    # 作图数据
    data = pd.read_excel('./data/GDPTOP20.xlsx',index_col=0)
    data
    # 作图
    c = (
        Map(init_opts=opts.InitOpts(width="1400px",height='600px'))  # 图表大小
        # 添加数据系列名称, 数据(list格式), 地图名称, 不显示小红点
        .add("", [list(z) for z in zip(data['国家_re'], data['GDP(亿美元)'])], "world",is_map_symbol_show=False) 
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 标签不显示(国家名称不显示)
        .set_global_opts(
            title_opts=opts.TitleOpts(title="2020年GDP前20国家",subtitle='单位: 亿美元'),   # 主标题与副标题名称
            visualmap_opts=opts.VisualMapOpts(max_=50000),               # 值映射最大值
        )   
    )
    c.render("2020年GDP前20国家.html")       # 生成html文件
    
    

    模板2:曲线图丨实际与预测、实际与实际对比

    数据及效果图

    import pandas as pd
    import numpy as np
    import pyecharts.options as opts
    from pyecharts.charts import Line
    data = pd.read_excel('C:/Users/yyz/Desktop/pyechart数据可视化/data/曲线图.xlsx')
    data
    line = (
        Line(init_opts=opts.InitOpts(width="1400px", height="700px"))   # 设置图表大小
        .add_xaxis(data['月份'].tolist())  # 设置x轴, 需要加tolist
     
        .add_yaxis("2021年预测", 
                    data['2021年预测'],
                    is_connect_nones=True,# 缺失值的处理
                    symbol_size=10, # 标识的大小
                    is_smooth=True,# 线条样式  , 是否设置成圆滑曲线
                    linestyle_opts=opts.LineStyleOpts(width=3,color ='#f6c065',type_="dashed"), # 线条颜色和宽度
                    label_opts=opts.LabelOpts(is_show=True,position='top',color ='#f6c065'),# 文字标签的位置和颜色
                    itemstyle_opts=opts.ItemStyleOpts(border_width=3, border_color="#f6c065", color="#f6c065"),# 标识的颜色和宽度
                    )   
    
        .add_yaxis("2021年实际", 
                   data['2021年实际'],
                   is_connect_nones=True,
                   #symbol="triangle" 标识的样式  三角形
                   symbol_size=10, # 标识的大小
                   is_smooth=True, # 线条样式  , 是否设置成圆滑曲线
                   linestyle_opts=opts.LineStyleOpts(width=3,color ='#16c79a'),  # 线条颜色和宽度
                   label_opts=opts.LabelOpts(is_show=True,position='top',color ='#16c79a'),# 文字标签的位置和颜色
                   itemstyle_opts=opts.ItemStyleOpts(border_width=3, border_color='#16c79a', color='#16c79a'),  # 标识的颜色和宽度
                   )    
        
        .add_yaxis("2020年实际", 
                   data['2020年实际'],
                   is_connect_nones=True,
                   symbol_size=10, 
                   is_smooth=True,
                   linestyle_opts=opts.LineStyleOpts(width=3,color ='#28527a'),
                   label_opts=opts.LabelOpts(is_show=True,position='bottom',color ='#28527a'),
                   itemstyle_opts=opts.ItemStyleOpts(border_width=3, border_color="#28527a", color="#28527a"),
                   )     
        
        .set_global_opts(title_opts=opts.TitleOpts(title="销售量趋势分析",subtitle="", # 主标题
                                                   title_textstyle_opts=opts.TextStyleOpts(font_size=30), #主标题字体大小
                                                   pos_left='6%'), # 主标题位置
                         legend_opts=opts.LegendOpts(is_show=True,# 是否显示图例
                                                     pos_top="3%",# 图例位置
                                                     item_width=15,# 宽度
                                                     item_height=15,#高度
                                                     item_gap=10,# 图例间隔
                                                     textstyle_opts=opts.TextStyleOpts(font_size=15)), # 图例文字大小
                         tooltip_opts=opts.TooltipOpts(trigger="axis"),# 提示框触发, 按坐标轴
                         yaxis_opts=opts.AxisOpts(type_="value",
                                                  axistick_opts=opts.AxisTickOpts(is_show=False),   # 刻度线不显示
                                                  axisline_opts=opts.AxisLineOpts(is_show=False),   # y轴线不显示
                                                  splitline_opts=opts.SplitLineOpts(is_show=True),   # y轴网格线显示
                                                  axislabel_opts=opts.LabelOpts(formatter="{value} 万件")),# y轴刻度文字
                         xaxis_opts=opts.AxisOpts(axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
                                                  is_scale=False,
                                                  boundary_gap=False))
        )
    
    line.render("C:/Users/yyz/Desktop/pyechart数据可视化/销售量趋势分析.html")
    
    

    模板3:曲线图与柱形图组合图丨隐藏次坐标轴并显示同比

    数据及效果

    import pandas as pd
    import numpy as np
    import pyecharts.options as opts
    from pyecharts.charts import Line,Bar,Grid
    data = pd.read_excel('./data/添加次坐标轴.xlsx')
    data
    line = (
        Line(init_opts=opts.InitOpts(width="1400px", height="700px"))   # 图表大小
        .add_xaxis(data['月份'].tolist())   # x轴
    
        .add_yaxis("2019实际",  # 系列名称
                   data['2019年实际'],  # 数据
                   is_connect_nones=True, # 缺失值处理
                   symbol_size=10, # 标识的大小
                   is_smooth=True,  # 线的类型, 直线还是圆滑曲线
                   linestyle_opts=opts.LineStyleOpts(width=3,color ='#28527a'),  # 线宽度
                   label_opts=opts.LabelOpts(is_show=True,position='bottom',color ='#28527a'),# 文字标签的位置和颜色
                   itemstyle_opts=opts.ItemStyleOpts(border_width=3, border_color='#28527a', color='#28527a'),  # 标识的颜色和宽度
                   )     
        .add_yaxis("2020年实际", 
                   data['2020年实际'], 
                   symbol_size=10, # 标识的大小
                   is_connect_nones=True, # 缺失值处理
                   is_smooth=True, # 线的类型, 直线还是圆滑曲线
                   linestyle_opts=opts.LineStyleOpts(width=3,color ='#f05454'), # 线宽 , 线的类型(虚线)
                   label_opts=opts.LabelOpts(is_show=True,position='top',color ='#f05454'),# 文字标签的位置和颜色
                   itemstyle_opts=opts.ItemStyleOpts(border_width=3, border_color='#f05454', color='#f05454'),  # 标识的颜色和宽度
                   )   
    
        .extend_axis( # 设置次坐标轴
            yaxis=opts.AxisOpts(
                name="",
                type_="value",
                min_=-20,
                max_=80,
                is_show=False,
                                )
                    )
        .set_global_opts(title_opts=opts.TitleOpts(title="销售趋势对比",
                                                   title_textstyle_opts=opts.TextStyleOpts(font_size=30), #主标题字体大小
                                                   subtitle="", # 次坐标轴
                                                   pos_left='6%'),
                         legend_opts=opts.LegendOpts(is_show=True,pos_top="4%"),  # 图例
                         tooltip_opts=opts.TooltipOpts(trigger="axis"),
                         yaxis_opts=opts.AxisOpts(type_="value",
                                                  axistick_opts=opts.AxisTickOpts(is_show=False),   # 刻度线
                                                  axisline_opts=opts.AxisLineOpts(is_show=False),   # y轴线
                                                  splitline_opts=opts.SplitLineOpts(is_show=True),   # y轴网格线
                                                  axislabel_opts=opts.LabelOpts(formatter="{value} 万件")),
                          )
        )
    
    bar = (
        Bar()
        .add_xaxis(xaxis_data=data['月份'].tolist())
        .add_yaxis(
            series_name="同比",
            yaxis_index=1,                                                                   # 次坐标
            y_axis=data['同比%'].tolist(),
            label_opts=opts.LabelOpts(is_show=True,position='top',formatter="{c} %"),
            itemstyle_opts=opts.ItemStyleOpts(color="#78c4d4",opacity=0.6),     # 柱形图颜色  
            )
        )
    
    line.overlap(bar) # 图表组合
    line.render("./销售趋势对比分析.html")
    
    

    模板4:帕累托图、柱形图与曲线图组合

    在这里插入图片描述

    import pandas as pd
    import numpy as np
    from pyecharts import options as opts            
    from pyecharts.charts import Bar,Line
    data = pd.read_excel('./data/帕累托图.xlsx')
    data
    bar = (
        Bar(init_opts=opts.InitOpts(width="1200px", height="500px"))  # 设置图表大小
        .add_xaxis(data['公司'].tolist())   # 设置柱形图的x轴, 必须写.tolist()
    
        .add_yaxis(
            series_name="采购额",  # y轴系列名称
            y_axis=data['采购额'].tolist(),   # 系列书籍
            label_opts=opts.LabelOpts(is_show=True,position='top',formatter="{c}"),# 数字标签显示样式
            itemstyle_opts=opts.ItemStyleOpts(color="#78c4d4",opacity=0.5),     # 柱形图颜色  
            )
        .extend_axis( # 设置次坐标轴
            yaxis=opts.AxisOpts(
                name="",
                type_="value",
                min_=0,  # 最小值
                max_=1,  # 最大值
                is_show=False,  # 是否显示
                                )
                    )    
            .set_global_opts(
                title_opts=opts.TitleOpts(title="采购额占比",  # 主标题
                                          subtitle="",   #副标题
                                          pos_left='6%'),  # 位置
                tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),  # 鼠标交叉十字显示
                legend_opts=opts.LegendOpts(is_show=False,pos_top="4%"),  # 图例
                xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=25)),
                yaxis_opts=opts.AxisOpts(                     # 显示y轴网格线
                    type_="value",
                    axistick_opts=opts.AxisTickOpts(is_show=False),   # 坐标轴商的刻度是否显示
                    axisline_opts=opts.AxisLineOpts(is_show=False), # y轴线
                    splitline_opts=opts.SplitLineOpts(is_show=True),   # y轴网格线是否显示
            ))
        )
    
    line = (
        Line(init_opts=opts.InitOpts(width="1200px", height="500px"))  # 设置图表大小
        .add_xaxis(data['公司'].tolist())  # 设置线形图的x轴
        .add_yaxis("",     
                   data['累计占比'],  # 系列数据
                   symbol_size=10, # 标识的大小
                   yaxis_index=1,   # 主坐标轴还是次坐标轴
                   markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(name="自定义标记点", 
                                                                              coord=[data.index[2],   # 数据坐标
                                                                                     data['累计占比'][2]], 
                                                                              value=data['累计占比'][2])]),  # 数据值
                   linestyle_opts=opts.LineStyleOpts(width=3,color ='#28527a'),  # 线宽度
                   itemstyle_opts=opts.ItemStyleOpts(border_width=3, border_color='#28527a', color='#28527a'),  # 标识的颜色和宽度
    
                  )  #标记重点
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))   # 不显示标签
    )
    
    bar.overlap(line) # 图表组合
    bar.render('04采购额占比.html')
    
    

    模板5:次坐标变主坐标,日期数据作为x轴

    在这里插入图片描述

    # 导入工具包
    import pandas as pd
    import numpy as np
    import pyecharts.options as opts
    from pyecharts.charts import Line
    # 模拟数据
    np.random.seed(42)
    data = pd.DataFrame({"Google": np.random.randn(1000)+0.2, 
                       "Apple": np.random.randn(1000)+0.17}, 
                       index=pd.date_range('1/1/2000', periods=1000))
    #df.index.name = "Date"
    data = data.cumsum()
    data = (data + 50).astype('int')
    data
    line = (
        Line(init_opts=opts.InitOpts(width="1400px", height="700px",bg_color='#CEDEE7'))   # 设置图表大小
        .add_xaxis(data.index.tolist())# 设置x轴, 需要加tolist
     
        .add_yaxis("苹果", 
                    data['Apple'],
                    yaxis_index=1,
                    linestyle_opts=opts.LineStyleOpts(width=5,color ='#00516D'), # 线条颜色和宽度
                    label_opts=opts.LabelOpts(is_show=False),
                    itemstyle_opts=opts.ItemStyleOpts(border_width=4, border_color="#00516D", color="#00516D"),
                    ) 
    
        .add_yaxis("谷歌", 
                    data['Google'],
                    yaxis_index=1,
                    linestyle_opts=opts.LineStyleOpts(width=5,color ='#00A4DC'), # 线条颜色和宽度
                    label_opts=opts.LabelOpts(is_show=False),
                    itemstyle_opts=opts.ItemStyleOpts(border_width=4, border_color="#00A4DC", color="#00A4DC"),
                    )  
        
        .add_yaxis("", 
                    [50],
                    yaxis_index=1,
                    symbol_size=10, 
                    label_opts=opts.LabelOpts(is_show=False),
                    itemstyle_opts=opts.ItemStyleOpts(border_width=10, border_color="#ED1C24", color="#00516D"),
                    ) 
        .extend_axis( # 设置次坐标轴
            yaxis=opts.AxisOpts(
                name="",
                type_="value",
                min_=30,
                max_=300,
                is_show=True,
                axisline_opts=opts.AxisLineOpts(is_show=False),   # y轴线不显示
                axistick_opts=opts.AxisTickOpts(is_show=False),   # 刻度线不显示
                splitline_opts=opts.SplitLineOpts(
                    is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1,color='#FFFFFF',width=3)),
                                )
                    )
       
        .set_global_opts(title_opts=opts.TitleOpts(title="销售量趋势分析",
                                                   subtitle="", # 主标题,
                                                   pos_left='9%',
                                                   pos_top='2%',
                                                   title_textstyle_opts=opts.TextStyleOpts(font_size=30)), #主标题字体大小
                         legend_opts=opts.LegendOpts(is_show=True,# 是否显示图例
                                                     pos_top="5%",# 图例位置
                                                     item_width=15,# 宽度
                                                     item_height=15,#高度
                                                     item_gap=10,# 图例间隔
                                                     textstyle_opts=opts.TextStyleOpts(font_size=15)), # 图例文字大小
                         tooltip_opts=opts.TooltipOpts(trigger="axis"),# 提示框触发, 按坐标轴
                         yaxis_opts=opts.AxisOpts(axisline_opts=opts.AxisLineOpts(is_show=False)),   # y轴线不显示
                         xaxis_opts=opts.AxisOpts(type_ = 'time',
                                                  axistick_opts=opts.AxisTickOpts(is_show=True),
                                                  minor_tick_opts=opts.series_options.MinorSplitLineOpts(is_show=True)),  #x轴为时间类型
                        )
        )
    
    
    line.render("C:/Users/yyz/Desktop/pyechart数据可视化/销售量趋势分析.html")
    
    

    模板6:中国地图、省份地图丨2020年全国各省GDP

    在这里插入图片描述

    import pandas as pd
    import numpy as np
    from pyecharts import options as opts
    from pyecharts.charts import Map
    data = pd.read_excel('./data/31省份GDP.xlsx')
    data
    c = (
        Map(init_opts=opts.InitOpts(width="1400px", height="700px"))
        .add("省份", # 系列名称
             [list(z) for z in zip(data['省份'], data['2020年GDP(亿元)'])], # 数据
             "china",  # 地图
             is_map_symbol_show=False, # 不显示小红点
            )
         
        .set_global_opts(
            title_opts=opts.TitleOpts(title="2020年省份GDP分布",  # 图表标题
                                      title_textstyle_opts=opts.TextStyleOpts(font_size=20), #字体大小
                                      pos_left='20%', # 标题位置
                                      pos_top='5%'), 
            legend_opts=opts.LegendOpts(is_show=False), # 图例是否显示
            visualmap_opts=opts.VisualMapOpts(max_=120000, # 最大值
                                              is_piecewise=True, # 是否为分段型
                                              split_number=6,  # 分多少段
                                              range_text=['亿元',''], # 上下显示的文字
                                              range_color=["#d9ecf2", "#a2d5f2", "#e8ffc1", "#a5ecd7", "#51adcf", "#0278ae"],#颜色
                                              pos_left='20%',
                                              pos_top='70%',
                                             ),
        ))
    c.render("./06_2020年省份GDP分布.html")
    
    

    模板7:中国地图、省份地图丨人口迁徙图、轨迹图、流向图

    在这里插入图片描述

    import pandas as pd
    import numpy as np
    from pyecharts import options as opts
    from pyecharts.charts import Geo
    from pyecharts.globals import ChartType
    data = pd.read_excel('./data/迁徙图.xlsx')
    data
    c = (
        Geo(init_opts=opts.InitOpts(width="1200px", height="700px")) # 图表大小
        .add_schema(maptype="china", # 地图
                    itemstyle_opts=opts.ItemStyleOpts(color="#28527a", #背景颜色
                                                      border_color="#9ba4b4"))      #边框颜色, 可在 https://colorhunt.co/选择颜色
          
        .add(
             "",  # 系列名称, 可不设置
             [(i,j) for i,j in zip(data['出发地'][:5],data['目的地'][:5])], # 数据
             color='#16c79a', # 标记颜色
             type_=ChartType.LINES,     # 线条
             effect_opts=opts.EffectOpts(symbol='arrow', # 类型
                                         symbol_size=6, # 标记大小
                                         color="blue",# 箭头颜色 
                                        ),   
             linestyle_opts=opts.LineStyleOpts(curve=0.2), # 设置线条弧度大小
         )
        
        .add(
            "", # 系列名称, 可不设置
            [(i,j) for i,j in zip(data['目的地'],data['热度'])],# 数据
            type_=ChartType.EFFECT_SCATTER,      # 涟漪散点
            effect_opts=opts.EffectOpts(symbol_size=2,
                                        period = 2,
                                        color="blue",# 箭头颜色
                                       ), 
            color="white", # 蓝色blue  白色 white 灰色grey
            symbol_size=20,  # 标记的大小
        )
        
         .add(
             "",  # 系列名称, 可不设置
             [(i,j) for i,j in zip(data['出发地'][5:],data['目的地'][5:])],
             color='#f6c065',
             type_=ChartType.LINES,     # 线条
    
             effect_opts=opts.EffectOpts(symbol='arrow',
                                         symbol_size=6,
                                         color="blue",
                                        ),   
             linestyle_opts=opts.LineStyleOpts(curve=0.2),
         )
    
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 不显示标签
        .set_global_opts(title_opts=opts.TitleOpts(title="迁徙图",pos_left='50%'))    # 图表标题
        )
    c.render("./迁徙图.html")
    
    

    模板8:世界地图丨2021年全球创新指数top20

    在这里插入图片描述

    import pandas as pd
    from pyecharts import options as opts
    from pyecharts.charts import Map
    data = pd.read_excel('./data/2021年全球创新指数.xlsx',index_col=0)
    data
    # 作图
    c = (
        Map(init_opts=opts.InitOpts(width="1400px",height='600px'))  # 图表大小
        .add("国家",  # 系列名称
             [list(z) for z in zip(data['国家_re'], data['排名'])], # 使用数据
             "world",  # 地图
             is_map_symbol_show=False)  # 是否显示红色小圆点 
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 标签不显示(国家名称不显示)
        .set_global_opts(
            title_opts=opts.TitleOpts(title="2021年全球创新指数排名Top20", # 主标题
                                      subtitle='',# 副标题
                                     pos_left='20%'),   # 位置
            legend_opts=opts.LegendOpts(is_show=False), # 图例是否显示
            visualmap_opts=opts.VisualMapOpts(type_='color',# 映射类型 color 或者 size
                                              min_=1,  # 最小值
                                              max_=20,  # 最大值
                                              range_text=['','排名'],
                                              orient='horizontal',  # 方式方式 水平 horizontal , 垂直vertical
                                              pos_left= '20%',#  pos_right
                                              pos_top='5%',  # pos_bottom
                                              split_number = 4, # 如果是连续数据, 分成几段
                                              is_piecewise= True, # 是否为分段显示
                                              is_inverse=False, # 是否反转
                                              pieces=[{"min": 1,"max":5,"color":"#00305A"},
                                                     {"min": 6,"max":10,"color":"#004B8D"},
                                                     {"min": 11,"max":15,"color":"#4192D9"},
                                                     {"min": 16,"max":20,"color":"#7ABAF2"}]
                                             ),               
        )   
    )
    c.render("2021年全球创新指数排名.html")       # 生成html文件
    
    

    模板9: 双坐标轴丨曲线图与柱形图组合图

    在这里插入图片描述

    import pandas as pd
    import numpy as np
    import pyecharts.options as opts
    from pyecharts.charts import Line,Bar,Grid
    data = pd.read_excel('./data/中国家电行业市场规模.xlsx')
    data['年份'] = data['年份'].astype('str') # 需要转成字符串格式
    data
    bar = (
        Bar(init_opts=opts.InitOpts(width="1400px", height="700px")) # 设置图表大小
        .add_xaxis(xaxis_data=data['年份'].tolist())  # x轴
        .add_yaxis(
            series_name="规模(亿元)",  #柱形图系列名称
            y_axis=data['规模(亿元)'].tolist(), # 数据
            label_opts=opts.LabelOpts(is_show=True,position='top',formatter="{c}"), # 显示数据标签
            itemstyle_opts=opts.ItemStyleOpts(color="#78c4d4",opacity=0.4),     # 柱形图颜色及透明度  
            )
        .extend_axis( # 设置次坐标轴
            yaxis=opts.AxisOpts(
                name="",  # 次坐标轴名称
                type_="value", # 次坐标手类型
                min_=-30,  # 最小值
                max_=30,  # 最大值
                is_show=True, # 是否显示
                axisline_opts=opts.AxisLineOpts(is_show=False,# y轴线不显示
                                               linestyle_opts=opts.LineStyleOpts(color='#f6c065')), # 设置线颜色, 字体颜色也变
                axistick_opts=opts.AxisTickOpts(is_show=False),   # 刻度线不显示
                axislabel_opts=opts.LabelOpts(formatter="{value}%"), # 次坐标轴数据显示格式
                                )
                    )  
        .set_global_opts(title_opts=opts.TitleOpts(title="中国家电行业(含3C)市场规模表现",# 标题
                                                   title_textstyle_opts=opts.TextStyleOpts(font_size=20), #主标题字体大小
                                                   subtitle="经过十年持续增长, 近三年中国市场遭遇瓶颈", # 次坐标轴
                                                   pos_left='6%'),# 标题位置
                         legend_opts=opts.LegendOpts(is_show=False),  # 不显示图例
                         tooltip_opts=opts.TooltipOpts(trigger="axis"),# 提示框
                         yaxis_opts=opts.AxisOpts(type_="value", # y轴类型
                                                  name='单位: 亿元', # y轴名称
                                                  name_location='middle', # y轴名称位置
                                                  name_gap=50,  # y轴名称距离轴线距离
                                                  axistick_opts=opts.AxisTickOpts(is_show=False),   # 刻度线
                                                  axisline_opts=opts.AxisLineOpts(is_show=False),   # y轴线
                                                  splitline_opts=opts.SplitLineOpts(is_show=True),   # y轴网格线
                                                  axislabel_opts=opts.LabelOpts(formatter="{value}")), # 轴标签显示方式
                          )   
        )
    
    line = (
        Line()
        .add_xaxis(xaxis_data=data['年份'].tolist()) # x轴
        .add_yaxis(
            series_name="环比",  # 名称
            yaxis_index=1,  # 次坐标
            is_smooth=True,# 线条样式  , 是否设置成圆滑曲线
            y_axis=data['环比%'].tolist(),
            itemstyle_opts=opts.ItemStyleOpts(color="#f6c065"),     # 标记的颜色
            linestyle_opts=opts.LineStyleOpts(width=3,color ='#f6c065'), # 线条颜色和宽度
            )
        )
    
    bar.overlap(line) # 图表组合
    bar.render("./09家电行业规模.html")
    
    

    模板10:中国地图 省份地图 市级地图丨全国主要城市空气质量排行榜

    在这里插入图片描述

    import pandas as pd
    import numpy as np
    
    from pyecharts import options as opts
    from pyecharts.charts import Geo
    from pyecharts.globals import ChartType
    
    data = pd.read_excel('./data/380城市空气质量数据.xlsx',index_col=0)
    data
    
    c = (
        Geo(init_opts=opts.InitOpts(width="1400px", height="700px",theme='dark')) # 图表大小, 主题风格
        .add_schema(maptype="china", # 地图
                    itemstyle_opts=opts.ItemStyleOpts(color="#28527a", #背景颜色
                                                      border_color="#9ba4b4"))      #边框颜色, 可在 https://colorhunt.co/选择颜色         
        .add(
            "", # 系列名称, 可不设置
            [(i,j) for i,j in zip(data['城市'],data['空气质量指数'])],# 数据
            type_=ChartType.EFFECT_SCATTER,      # 涟漪散点
            effect_opts=opts.EffectOpts(symbol_size=2), # 标记大小
        )
        
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 不显示标签
        .set_global_opts(title_opts=opts.TitleOpts(title="全国主要城市空气质量指数排行榜",  # 图表标题
                                                   pos_left='center',  # 标题位置
                                                   subtitle='更新日期:2021-4-5', # 副标题
                                                   subtitle_link='http://tianqi.2345.com/air-rank.html'), # 副标题链接
                         visualmap_opts=opts.VisualMapOpts(max_=200,
                                                           range_text=['AQI指数',''], # 上下的名称
                                                           split_number = 4, # 如果是连续数据, 分成几段
                                                           pos_left= '20%',#  pos_right
                                                           pos_top='70%',  # pos_bottom
                                                           is_piecewise= True, # 是否为分段显示
                                                           pieces=[{"min": 1,"max":50,"color":"#32e0c4",'label':'优'},
                                                                   {"min": 51,"max":100,"color":"#b8de6f",'label':'良'},
                                                                   {"min": 101,"max":150,"color":"#fd8c04",'label':'轻度污染'},
                                                                   {"min": 151,"max":200,"color":"#ec5858",'label':'中度污染'}])))
    
    c.render("./10_全国主要城市空气质量指数排行榜.html")
    
    

    模板11:双坐标轴, 图表简化丨2020年全球智能个人音频设备出货量及增长率

    在这里插入图片描述

    import pandas as pd
    import numpy as np
    from pyecharts import options as opts            
    from pyecharts.charts import Bar,Line
    
    data = pd.read_excel('./data/2020年全球智能个人音频设备出货量及增长率.xlsx')
    data
    bar = (
        Bar(init_opts=opts.InitOpts(width="1200px", height="500px",theme='light'))  # 设置图表大小
        .add_xaxis(data['品牌'].tolist())   # 设置柱形图的x轴, 必须写.tolist()
    
        .add_yaxis(
            series_name="2019年出货量(万台)",  # y轴系列名称
            y_axis=data['2019年出货量(万台)'].tolist(),   # 系列书籍
            label_opts=opts.LabelOpts(is_show=True,position='top',formatter="{c}"),# 数字标签显示样式
            itemstyle_opts=opts.ItemStyleOpts(color="#23120b",opacity=1),     # 柱形图颜色  ,透明度
            )
        .add_yaxis(
            series_name="2020年出货量(万台)",  # y轴系列名称
            y_axis=data['2020年出货量(万台)'].tolist(),   # 系列书籍
            label_opts=opts.LabelOpts(is_show=True,position='top',formatter="{c}"),# 数字标签显示样式
            itemstyle_opts=opts.ItemStyleOpts(color="#21209c",opacity=1),     # 柱形图颜色  
            )
        
        .extend_axis( # 设置次坐标轴
            yaxis=opts.AxisOpts(
                name="",
                type_="value",
                min_=-300,  # 最小值
                max_=160,  # 最大值
                is_show=False,  # 是否显示
                                )
                    )    
            .set_global_opts(
                title_opts=opts.TitleOpts(title="2020年全球智能个人音频设备出货量及增长率",  # 主标题
                                          subtitle="",   #副标题
                                          pos_top='5%',
                                          title_textstyle_opts=opts.TextStyleOpts(font_size=20),
                                          pos_left='center'),  # 位置
                tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),  # 鼠标交叉十字显示
                legend_opts=opts.LegendOpts(is_show=False,pos_top="center"),  # 图例
                yaxis_opts=opts.AxisOpts(                     # 显示y轴网格线
                    is_show=False,
                    max_=41000,
                    type_="value",
                    axistick_opts=opts.AxisTickOpts(is_show=False),   # 坐标轴商的刻度是否显示
                    axisline_opts=opts.AxisLineOpts(is_show=False), # y轴线
                    splitline_opts=opts.SplitLineOpts(is_show=True),   # y轴网格线是否显示
            ))
        )
    
    line = (
        Line(init_opts=opts.InitOpts(width="1200px", height="500px"))  # 设置图表大小
        .add_xaxis(data['品牌'].tolist())  # 设置线形图的x轴
        .add_yaxis("",     
                   data['同比增长率(%)'],  # 系列数据
                   symbol_size=10, # 标识的大小
                   is_smooth=True,
                   yaxis_index=1,   # 主坐标轴还是次坐标轴
                   label_opts=opts.LabelOpts(is_show=True,position='bottom',formatter="{c}%",color ='#28527a'), # 数据标签
                   linestyle_opts=opts.LineStyleOpts(width=3,color ='#28527a'),  # 线宽度
                   itemstyle_opts=opts.ItemStyleOpts(border_width=3, border_color='#28527a', color='#28527a'),  # 标识的颜色和宽度
    
                  )  #标记重点
    )
    
    bar.overlap(line) # 图表组合
    bar.render('11_2020年全球智能个人音频设备出货量及增长率.html')
    
    

    模板12: 仪表盘丨2020年全球智能手机相关数据

    在这里插入图片描述

    import pandas as pd
    import numpy as np
    from pyecharts import options as opts            
    from pyecharts.charts import Bar,Line,Pie,Page
    from pyecharts.commons.utils import JsCode
    from pyecharts.globals import ThemeType, ChartType
    
    data = pd.read_excel('./data/2020年智能手机相关数据.xlsx',sheet_name=None)
    data
    # 数据
    data1 = data['2020年全球智能手机TOP10厂商市场份额']
    data1.sort_values(by='百分比',ascending=True,inplace=True) # 升序排列
    data1['百分比'] = (data1['百分比']*100).round(2)  # 保留2位小数
    data1
    bar1 = (
        Bar(init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f")) # 图表风格和背景色设置
        .add_xaxis(data1['品牌'].tolist())  # x轴数据
        .reversal_axis()    # 坐标轴翻转(条形图)
        .add_yaxis("", data1['百分比'].tolist())  #y轴数据
        .set_global_opts(title_opts=opts.TitleOpts(title="2020年全球智能手机TOP10厂商市场份额",
                                                   subtitle="2020年LG共出货2470万台智能手机设备,约占1.9%的时长份额",
                                                  pos_left='center'))
        .set_series_opts(label_opts=opts.LabelOpts(position="right",
                                                  formatter="{c} %"))
    )
    bar1.render('大屏1.html')
    # 数据
    data2 = data['2020年美国智能手机用户主要手机品牌及占比']
    data2.sort_values(by='百分比',ascending=True,inplace=True) # 升序排列
    data2['百分比'] = (data2['百分比']*100).round(2)  # 保留2位小数
    data2
    bar2 = (
        Bar(init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f"))
        .add_xaxis(data2['品牌'].tolist())
        .reversal_axis()
        .add_yaxis("", data2['百分比'].tolist())
        .set_global_opts(title_opts=opts.TitleOpts(title="2020年美国智能手机用户主要手机品牌及占比",
                                                   subtitle="随着LG的退出,美国智能手机市场将变成苹果和三星的双头垄断",
                                                   pos_left='center')) 
        .set_series_opts(label_opts=opts.LabelOpts(position="right",
                                                  formatter="{c} %"))    
    )
    bar2.render('大屏2.html')
    # 数据
    data3 = data['2020-2021年全球智能手机出货量市场份额']
    data3[2020] = (data3[2020]*100).round(2)
    data3['2021E'] = (data3['2021E']*100).round(2)
    data3_re = data3.set_index('品牌').T.reset_index()
    data3_re
    bar3 = (
        Bar(init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f"))
        .add_xaxis(data3_re['index'].tolist())
        .add_yaxis("三星", data3_re['三星'].tolist(),stack="stack1")
        .add_yaxis("苹果", data3_re['苹果'].tolist(),stack="stack1")
        .add_yaxis("小米", data3_re['小米'].tolist(),stack="stack1")
        .add_yaxis("vivo", data3_re['vivo'].tolist(),stack="stack1")
        .add_yaxis("OPPO", data3_re['OPPO'].tolist(),stack="stack1")
        .add_yaxis("其他", data3_re['其他'].tolist(),stack="stack1")
        .set_global_opts(title_opts=opts.TitleOpts(title="2020-2021年全球智能手机出货量市场份额",
                                                   subtitle="小米将在2021年成为全球第三大智能手机供应商",
                                                   pos_left='center'),
                        legend_opts=opts.LegendOpts(is_show=True,pos_top="bottom")) 
        .set_series_opts(label_opts=opts.LabelOpts(position="inside",
                                                  formatter="{c} %"))  
    )
    bar3.render('大屏3.html')
    
    # 数据
    data4 = data['2019-2020年全球可穿戴设备销售额市场份额']
    data4[2019] = (data4[2019]*100).round(2)
    data4[2020] = (data4[2020]*100).round(2)
    data4_re = data4.set_index('类型').T.reset_index()
    data4_re
    bar4 = (
        Bar(init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f"))
        .add_xaxis(data4_re['index'].tolist())
        .add_yaxis("耳戴", data4_re['耳戴'].tolist(),stack="stack1")
        .add_yaxis("腕戴", data4_re['腕戴'].tolist(),stack="stack1")
        .add_yaxis("其他", data4_re['其他'].tolist(),stack="stack1")
        .set_global_opts(title_opts=opts.TitleOpts(title="2019-2020年全球可穿戴设备销售额市场份额",pos_left='center'),
                        legend_opts=opts.LegendOpts(is_show=True,pos_top="bottom"))
        .set_series_opts(label_opts=opts.LabelOpts(position="inside",
                                                  formatter="{c} %"))  
    )
    bar4.render('大屏4.html')
    
    # 数据
    data5 = data['2019-2020年全球可穿戴设备销售额及增长率']
    data5
    bar5 = (
        Bar(init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f"))  # 设置图表大小
        .add_xaxis(data5['品牌'].tolist())   # 设置柱形图的x轴, 必须写.tolist()
    
        .add_yaxis(
            series_name="2019年出货量(万台)",  # y轴系列名称
            y_axis=data5['2019年出货量(万台)'].tolist(),   # 系列数据
            )
        .add_yaxis(
            series_name="2020年出货量(万台)",  # y轴系列名称
            y_axis=data5['2020年出货量(万台)'].tolist(),   # 系列数据
            )
        
        .extend_axis( # 设置次坐标轴
            yaxis=opts.AxisOpts(
                name="",
                type_="value",
                min_=-300,  # 最小值
                max_=160,  # 最大值
                is_show=False,  # 是否显示
                                )
                    )    
            .set_global_opts(
                title_opts=opts.TitleOpts(title="2020年全球智能个人音频设备出货量及增长率",  # 主标题
                                          subtitle="",   #副标题
                                          title_textstyle_opts=opts.TextStyleOpts(font_size=20),
                                          pos_left='center'),  # 位置
                legend_opts=opts.LegendOpts(is_show=True,pos_top="bottom"),  # 图例
                yaxis_opts=opts.AxisOpts(                     # 显示y轴网格线
                    is_show=False,
                    max_=41000,
                    type_="value",
                    axistick_opts=opts.AxisTickOpts(is_show=False),   # 坐标轴商的刻度是否显示
                    axisline_opts=opts.AxisLineOpts(is_show=False), # y轴线
                    splitline_opts=opts.SplitLineOpts(is_show=True),   # y轴网格线是否显示
            ))
        )
    
    line1 = (
        Line()  # 设置图表大小
        .add_xaxis(data5['品牌'].tolist())  # 设置线形图的x轴
        .add_yaxis("",     
                   data5['同比增长率(%)'],  # 系列数据
                   symbol_size=10, # 标识的大小
                   is_smooth=True,
                   yaxis_index=1,   # 主坐标轴还是次坐标轴
                  ) 
    )
    
    bar5.overlap(line1) # 图表组合
    bar5.render('大屏5.html')
    
    # 数据
    data6 = data['2020年全球主要智能手机显示面板厂商市场份额']
    data6['占比'] = (data6['占比']*100).round(2)
    data6
    pie6 = (
        Pie(init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f"))
        .add(
            "",
            [list(z) for z in zip(data6['品牌'],data6['占比'])],
            radius=['40%', '60%'])
            .set_global_opts(
                title_opts=opts.TitleOpts(title="2020年全球主要智能手机显示面板厂商市场份额",  # 主标题
                                          subtitle="",   #副标题
                                          title_textstyle_opts=opts.TextStyleOpts(font_size=20),
                                          pos_left='center'),  # 位置
                        legend_opts=opts.LegendOpts(is_show=True,pos_top="bottom")) 
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}%"))  
        )
    pie6.render('大屏6.html')
    
    # 数据
    data7 = data['2020年全球主要智能手机电池厂商市场份额']
    data7['占比'] = (data7['占比']*100).round(2)
    data7
    pie7 = (
        Pie(init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f"))
        .add(
            "",
            [list(z) for z in zip(data7['品牌'],data7['占比'])],
            radius=['40%', '60%'])
            .set_global_opts(
                title_opts=opts.TitleOpts(title="2020年全球主要智能手机电池厂商市场份额",  # 主标题
                                          subtitle="",   #副标题
                                          title_textstyle_opts=opts.TextStyleOpts(font_size=20),
                                          pos_left='center'),  # 位置
                        legend_opts=opts.LegendOpts(is_show=True,pos_top="bottom")) 
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}%"))  
        )
    pie7.render('大屏7.html')
    # 数据
    data8 = data['2020年全球主要智能手机图像传感器厂商市场份额']
    data8['占比'] = (data8['占比']*100).round(2)
    data8
    pie8 = (
        Pie(init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f"))
        .add(
            "",
            [list(z) for z in zip(data8['品牌'],data8['占比'])],
            radius=['40%', '60%'])
            .set_global_opts(
                title_opts=opts.TitleOpts(title="2020年全球主要智能手机图像传感器厂商市场份额",  # 主标题
                                          subtitle="",   #副标题
                                          title_textstyle_opts=opts.TextStyleOpts(font_size=20),
                                          pos_left='center'),  # 位置
                        legend_opts=opts.LegendOpts(is_show=True,pos_top="bottom")) 
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}%"))  
        )
    pie8.render('大屏8.html')
    pie9 = (
        Pie(init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f"))#init_opts=opts.InitOpts(theme='westeros',bg_color="#161d6f")
            .set_global_opts(
            title_opts=opts.TitleOpts(title="2020年全球智能手机相关数据",
                                      subtitle='更新日期: 2021/4/11',
                                      pos_left='center',
                                      title_textstyle_opts=opts.TextStyleOpts(font_size=25, color='#51c2d5',),
                                      pos_top='10%'))
    )
    pie9.render('大屏9.html')
    page = Page(layout=Page.DraggablePageLayout)
    page.add(pie9,bar1,bar2,bar3,bar4,bar5,pie6,pie7,pie8)
    page.render("2020年全球智能手机相关数据.html")
    # 重新布局
    Page.save_resize_html("2020年全球智能手机相关数据.html", cfg_file="./布局文件/chart_config (2).json", dest="2020年全球智能手机相关数据_re2.html")
    
    

    模板13: 仪表盘 添加不同背景图

    在这里插入图片描述

    import pandas as pd
    import numpy as np
    from pyecharts import options as opts
    from pyecharts.charts import Map,Line,Bar
    from pyecharts.globals import ThemeType
    from pyecharts.commons.utils import JsCode
    
    data = pd.read_excel('./data/彩票.xlsx',sheet_name=None)
    data
    data1 = data['2020年3月-2021年2月中国彩票销售额']
    data1
    bar = (
        Bar(init_opts=opts.InitOpts(width="1200px", height="500px",theme='light'))  # 设置图表大小
        .add_xaxis(data1['时间'].tolist())   # 设置柱形图的x轴, 必须写.tolist()
        .add_yaxis(
            series_name="销售额(亿元)",  # y轴系列名称
            y_axis=data1['销售额(亿元)'].tolist(),   # 系列书籍
            label_opts=opts.LabelOpts(is_show=True,position='top',formatter="{c}"),# 数字标签显示样式
            itemstyle_opts=opts.ItemStyleOpts(color="#51c4d3",opacity=1),     # 柱形图颜色  ,透明度
            )
            .set_global_opts(
                title_opts=opts.TitleOpts(title="2020年3月-2021年2月中国彩票销售额",  # 主标题
                                          subtitle="",   #副标题
                                          pos_top='5%',
                                          title_textstyle_opts=opts.TextStyleOpts(font_size=15,color='white'),
                                          pos_left='center'),  # 位置
                tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),  # 鼠标交叉十字显示
                legend_opts=opts.LegendOpts(is_show=True,pos_top="bottom"),  # 图例
                yaxis_opts=opts.AxisOpts(                     # 显示y轴网格线
                    is_show=False,
                    type_="value",
                    axistick_opts=opts.AxisTickOpts(is_show=False),   # 坐标轴商的刻度是否显示
                    axisline_opts=opts.AxisLineOpts(is_show=False), # y轴线
                    splitline_opts=opts.SplitLineOpts(is_show=True),   # y轴网格线是否显示
            ))
        )
    
    
    bar.render('13_2020年3月-2021年2月中国彩票销售额.html')
    
    data2 = data['2021年1-2月中国各地区彩票累计销售额']
    data2
    map2 = (
        Map(init_opts=opts.InitOpts(width="1400px", height="700px",theme='light'))  # 设置图表大小 主题风格 ThemeType.LIGHT  Dark ,theme='vintage'
        .add("省份", # 系列名称
             [list(z) for z in zip(data2['省市'], data2['累计销售额(亿元)'])], # 数据
             "china",  # 地图
             is_map_symbol_show=False, # 不显示小红点
            )
         
        .set_global_opts(
            title_opts=opts.TitleOpts(title="2021年1-2月中国各地区彩票累计销售额",  # 图表标题
                                      title_textstyle_opts=opts.TextStyleOpts(font_size=15, color='white'), #字体大小  T
                                      pos_left='center', # 标题位置
                                      pos_top='5%'), 
            legend_opts=opts.LegendOpts(is_show=False), # 图例是否显示
            visualmap_opts=opts.VisualMapOpts(max_=60, # 最大值
                                              is_piecewise=True, # 是否为分段型
                                              split_number=6,  # 分多少段
                                              range_text=['亿元',''], # 上下显示的文字
                                              range_color=["#d9ecf2", "#a2d5f2", "#e8ffc1", "#a5ecd7", "#51adcf", "#0278ae"],#颜色
                                              pos_left='20%',
                                              pos_top='70%',
                                             ),
        ))
    map2.render("./13_2021年1-2月中国各地区彩票累计销售额.html")
    # 标题
    line3 = (
        Line(init_opts=opts.InitOpts(width="1250px", 
                                     height="700px",
                                     bg_color={"type": "pattern", "image": JsCode("img"), "repeat": "no-repeat"}))
        .add_xaxis([None])
        .add_yaxis("", [None]) 
        .set_global_opts(
            title_opts=opts.TitleOpts(title="2021年中国彩票销售额",
                                      subtitle='更新日期: 2021/4/11',
                                      pos_left='center',
                                      title_textstyle_opts=opts.TextStyleOpts(font_size=25, color='#51c2d5'),
                                      pos_top='5%'),
            yaxis_opts=opts.AxisOpts(is_show=False),
            xaxis_opts=opts.AxisOpts(is_show=False))
    )
    line3.add_js_funcs(
        """
        var img = new Image(); img.src = 'http://img.netbian.com/file/2019/1121/5e4911c7c44d251ee030cfafe3660394.jpg';
        
        """
    )
    line3.render('./13_辅助.html')
    page = Page(layout=Page.DraggablePageLayout)
    page.add(line3,bar,map2)
    page.render("2021年1-2月中国各地区彩票累计销售额.html")
    # 重新布局
    Page.save_resize_html("2021年1-2月中国各地区彩票累计销售额.html", 
                          cfg_file="./布局文件/chart_config (3).json", 
                          dest="2021年1-2月中国各地区彩票累计销售额_re2.html")
    
    

    曾经买过刘万祥老师的这本图表书, 不知道还有谁买过呢?

    在这里插入图片描述
    在这里插入图片描述
    以上就是近期整理的, 有不明白的可以私信哟, 欢迎关注, 后期会不断更新!

    相关阅读推荐:

    1. python小白, 1周入门python数据分析视频课程

    2. pyechart可视化18式丨从柱形图的变化, 搞懂pyechart作图套路

    3. 懂点excel作图, 怎么让pyechart作的图更具“职场范“呢?

    4. 8个常用的python办公室自动化技巧,学会了同事都找你!

    5. 学习python数据分析的30个练手数据+4个数据集网站

    6. [工作必备]pandas数据分析处理52个常用技巧

    7. 泰坦尼克号数据你没见过的可视化丨pyechart制作桑基图(sankey)的最简单方法

    8. pyechart制作第七次人口普查数据动态图

    展开全文
  • 近期发现Excel作图也是蛮强大的,2013版的作图更加便捷、更加人性化。不仅可以呈现类似科研文章的严谨版效果图,还可以呈现诸多炫酷版,而这些操作有时只需一键即可。下面就总结几个作图时常用的功能。 (1)误差线...
  • Excel作图,含设定坐标轴取值范围

    千次阅读 2019-07-25 11:43:16
    下面是作图的常见步骤,因为本人用excel作图的频率不高,未防止遗忘特记于此,若有相同情况者可参考并相互讨论。 1.1 选择图表的类型 特别注意,目前我所知的,可以自由该表坐标轴取值范围的图表类型,只有散点图,...
  • Excel作图汇总 - Excel2010

    千次阅读 2019-09-20 13:06:33
    1.作折线图
  • 有需要的小伙伴自取,我用的xlxswriter库写的报表脚本 import matplotlib.pyplot as plt ...#创建excel和sheet book = xlsxwriter.Workbook('pict.xlsx') #创建数据 title_x = ['A','B','C','D'] t
  • Hey,我是小z大家可能都知道D3.js吧,它是目前最流行的可视化库之一。而我要给大家介绍这款实用且免费的 Excel 加载项——E2D3呢,就能在 Excel 中轻松实现各种D3的优质图...
  • 子母饼图最终实现的效果如上所示,第四季度数据映射至子饼图。实现步骤如下: Step1:将第四季度放置于表格末端,10月、11月、12月分别置于第四季度之前。 Step2:选中数据后插入初始字母饼图。 ...
  • 求教如何用下面的数据作为折线图的横轴数据?
  • 多层环图的效果如上,源数据为: 绘制步骤如下: Step1:选中第一列和第二列数据后,插入圆环图。 Step2:去除”商家名称"水平轴标签 选中圆环右击-选择数据源-水平(分类)轴标签-去除"商家名称" ...
  • 说到Excel作图,基本可以满足我们的日常工作需求,不需要做什么太多的研究就能学会,作为DMA,Excel使用是基本的必备素质,但是很多刚刚入门的DMA对于作图的规范和惯例是不太清楚的,早先我也是自己在学一些东西,不...
  • 1、先准备数据 在excel里面准备数据如下:(我这是已经画好了的样子) 2、选定区域,新建数据条 如下: 3、导出为pdf 复制粘贴到PPT中(粘贴的时候选择嵌入选项),然后导出为pdf,再在adobe acrobat dc中裁剪一下...
  • 今天用Excel表格处理大物实验数据时,需要根据数据画出相应的图表。然后就遇到一个问题,作图的时候X轴的坐标不会根据数据大小自动设置间隔。 解决办法: 尝试了很多办法,最后发现了一个简单的方法:改变 图表的...
  • WPS Excel 作图的一些小技巧

    千次阅读 2018-06-27 09:22:07
    选择按行或者案列生成系列: 先随便生成一个图 然后点击图右键 》选择数据》选择按行生成或者按列生成一个系列 坐标最大最小调节: 选中横/纵坐标轴 然后在右边框框中调节 属性》坐标轴选项 ...
  • 需要将下表中的销量数据折线图按照不同季度分不同颜色显示。 最终实现的效果如下所示: 处理方式如下: Step1:添加辅助列,将四个季度的数据分别存放在对应月份下。 这里需要注意的是,从第二个季度开始的辅助列...
  • 背景:写周报月报的时候会有一种需求,就是在自己excel图表已经做好了,每周可能在你原有的数据源往后加一列或是一行,你希望你的图表就直接引用你最新加上来的这行或是这一列,一直保持最近4周,或是最近6个月的...
  • 二维面积图展现占比变化最终实现效果如上所示,源数据如下: 绘制步骤如下: Step1:选中数据,插入"百分比堆积面积图" Step2:修改数据源配置 1)首先切换行/列 2)图例项中去除“商家名称" ...
  • 下面是某公司三月销售情况表现 ▼ 根据这个数据,你做出来的图表是这样的: ...来自:Excel自学成才 作者:小福  转自:中国统计网 感谢您的阅读,祝您一天好心情! 长按二维码,关注我们
  • 语法结构 REPT(text,number_times) text:表示需要重复显示的文本 number_times:表示指定文本重复显示的次数 1.星级填充 公式: =REPT("★",C6)&REPT("☆",5-C6) 2.柱状图填充 公式: ......
  • 表格数据可以再excel中自动作图,做图的各个部分都是可编辑的。 excel中作好的图: (1)在.doc中显示为图片,不可编辑; (2)在.docx中显示为画布图片,可编辑。

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 353
精华内容 141
关键字:

excel作图