跳到正文

数据分析之可视化展示

matplotlib学习笔记

Posted by lili on July 20, 2020 · 读取中...

    numpy(数据计算)+pandas(数据提取)+matplotlib(可视化图表) 自学数据分析期间的学习笔记。

    matplotlib

    1.什么是matplotlib

    最流行的python底层绘图库,主要做数据可视化报表,模仿MATLAB

    2.matplotlib基本要点

    坐标轴

    导入pyplot

    x = range(2,26,2)

    y = []

    plt.plot(x,y)传入xy通过plot绘出折线图

    plt.show()展示

    we can do more
    • 设置图片大小(高清无码大图)
    • fig = plt.figure(figsie=(20,8),dpi=80) dpi参数让图像更清晰
    • 保存到本地
    • plt.savefig(“./sig_size.png”)也可以保存svg这种矢量图,放大后不会有锯齿
    • 描述信息,图例,标题
    • matplotlib默认不显示中文,默认的英文字体.
    • 调整xy刻度的间距
    • 线条的样式(颜色透明度)
    • 标记出特殊的点(比如最低点最高点)
    • 给图片添加水印

    3.matplotlib的散点图,直方图,柱状图

    • 折线图:以折线的上升或下降来表示统计数量的增减变化的统计图
    • 特点(变化):能够显示数据的变化趋势,反映事物的变化情况
    • 直方图:由一系列高度不等的纵向条纹或线段表示数据的分布情况。一般横轴表示数据范围,纵轴表示分布情况
    • 特点(统计):绘制连续性的数据,展示一组或者多组数据的分布情况
    • 条形图:排列在工作表的列或行中的数据可以绘制到条形图中(数量统计,频率统计)
    • 特点(统计):绘制离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。
    • 散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间能否存在某种关联或总结坐标点的分布模式
    • 特点(分布规律):判断变量之间是否存在数量关联趋势,展示离群点

    4.更多的画图工具

    为什么学matplotlib

    1。能将数据进行可视化,更直观的呈现

    2。使数据更加客观,具有说服力

    pyechart笔记

    echart是更高级的可视化图表。

    _ThemeType主题

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
      BUILTIN_THEMES = ["light", "dark", "white"]
        LIGHT = "light"#明亮风格
        DARK = "dark"#暗黑风
        WHITE = "white"#洁白风
        CHALK: str = "chalk" #粉笔风
        ESSOS: str = "essos" #厄索斯大陆
        INFOGRAPHIC: str = "infographic"#信息图
        MACARONS: str = "macarons"#马卡龙
        PURPLE_PASSION: str = "purple-passion"#紫色激情
        ROMA: str = "roma"#石榴
        ROMANTIC: str = "romantic" #浪漫风
        SHINE: str = "shine"#闪耀风
        VINTAGE: str = "vintage"#复古风
        WALDEN: str = "walden"#瓦尔登湖
        WESTEROS: str = "westeros" #维斯特洛大陆
        WONDERLAND: str = "wonderland"#仙境
        HALLOWEEN: str = "halloween"#万圣节
    

    参考资料:https://blog.csdn.net/qq_41595507/article/details/102947622

    LegendOpts图例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    
    from pyecharts import options as opts
    from pyecharts.charts import Bar
    from pyecharts.faker import Faker
    from pyecharts.globals import ThemeType
    from pyecharts.charts import Bar
    bar = (
        Bar({"theme": ThemeType.MACARONS})
        .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
        .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
        .add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
        .set_global_opts(
            #LegendOpts:图例配置项
            legend_opts=opts.LegendOpts(
                # 是否显示图例组件
                is_show = True,
            # 图例的类型。可选值:
            # 'plain':普通图例。缺省就是普通图例。
            # 'scroll':可滚动翻页的图例。当图例数量较多时可以使用。
            type_ = 'plain',
    
            # 图例选择的模式,控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 false 关闭
            # 除此之外也可以设成 'single' 或者 'multiple' 使用单选或者多选模式。
            # selected_mode = False,
            selected_mode = True,
            # selected_mode = 'multiple',
    
            # 图例组件离容器左侧的距离。
            # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'left', 'center', 'right'。
            # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
            # pos_left = 50,
            pos_left = '50%',
            # pos_left = 'left',
    
            # 图例组件离容器右侧的距离(同上)。
            # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
            pos_right = None,
    
            # 图例组件离容器上侧的距离(同上)。
            # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'top', 'middle', 'bottom'。
            # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
            pos_top = None,
    
            # 图例组件离容器下侧的距离(同上)。
            # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
            pos_bottom = None,
    
            # 图例列表的布局朝向。可选:'horizontal', 'vertical'
            orient = 'vertical',
    
            # 图例标记和文本的对齐。默认自动(auto)
            # 根据组件的位置和 orient 决定
            # 当组件的 left 值为 'right' 以及纵向布局(orient 为 'vertical')的时候为右对齐,即为 'right'。
            # 可选参数: `auto`, `left`, `right`
            align = None,
    
            # 图例内边距,单位px,默认各方向内边距为5
            padding = 5,
    
            # 图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。
            # 默认间隔为 10
            item_gap = 20,
    
            # 图例标记的图形宽度。默认宽度为 25
            item_width = 50,
    
            # 图例标记的图形高度。默认高度为 14
            item_height = 14,
        
            # 图例关闭时的颜色。默认是 #ccc
            inactive_color = '#E6E61A',
    
            # 图例组件字体样式,参考 `series_options.TextStyleOpts`
            textstyle_opts = None,
    
            # 图例项的 icon。
            # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'
            # 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。
            # 可以通过 'path://' 将图标设置为任意的矢量路径。
            legend_icon ='pin',
                    
            )
        
        )
    )
    bar.render("C:/a.html")
    

    TitleOpts标题

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    
    from pyecharts import options as opts
    from pyecharts.charts import Bar
    from pyecharts.faker import Faker
    from pyecharts.globals import ThemeType
    c = (
        Bar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS,bg_color='white'))
        .add_xaxis(Faker.choose())
        .add_yaxis("商家", Faker.values())
        .set_global_opts(
            title_opts=opts.TitleOpts(
                # 主标题文本,支持使用 \n 换行。
                title="Bar基本示例",
                
                # 主标题跳转 URL 链接
                title_link = 'https://www.baidu.com/',
                
                # 主标题跳转链接方式
                # 默认值是: blank
                # 可选参数: 'self', 'blank'
                # 'self' 当前窗口打开; 'blank' 新窗口打开
                title_target = 'self',
                
                # 副标题文本,支持使用 \n 换行
                subtitle="我是副标题",
                
                # 副标题跳转 URL 链接
                # subtitle_link = 'https://www.baidu.com/',
                    
                # 副标题跳转链接方式
                # subtitle_target = 'self',
                
                # title 组件离容器左侧的距离。
                # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比
                # 也可以是 'left', 'center', 'right','top', 'middle', 'bottom'
                # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
                pos_left = '80%', 
                # 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距
                # // 设置内边距为 5
                # padding: 5
                # // 设置上下的内边距为 5,左右的内边距为 10
                # padding: [5, 10]
                # // 分别设置四个方向的内边距
                # padding: [
                #     5,  // 上
                #     10, // 右
                #     5,  // 下
                #     10, // 左
                # ]
    
    
                # 主副标题之间的间距,默认为10
                item_gap = 30,
    
                ),        
            )
        .render("C:/bar_base_.html")
    )