暑期学习之数据结构知识补充+数据可视化常用知识查询网站

本篇笔记主要是记录补充关于Python数据结构的知识及学习数据可视化的收获。[更新]

一、数据结构知识补充

1.元组

元组是一个固定长度,不可改变的Python序列对象。创建元组的最简单方式,是用逗号分隔一列值:
在这里插入图片描述
当用复杂的表达式定义元组,最好将值放到圆括号内,如下所示:
在这里插入图片描述
用tuple可以将任意序列或迭代器转换成元组:
在这里插入图片描述
在这里插入图片描述
可以用加号运算符将元组串联起来:

(4,None,'foo')+(6,0)+('bar',)
(4, None, 'foo', 6, 0, 'bar')

元组乘以一个整数,像列表一样,会将几个元组的复制串联起来(对象本身并没有被复制,只是引用了它):

('foo', 'bar') * 4
('foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'bar')​

2.拆分元组

如果你想将元组赋值给类似元组的变量,Python会试图拆分等号右边的值:

tup = (4, 5, 6)
a, b, c = tup
c
6

即使含有元组的元组也会被拆分:

tup = 4, 5, (6, 7)
a, b, (c, d) = tup
d
7

在Python中,替换可以这样做:

a,b=1,2
a
1
b
2
b, a = a, b
a
2
b
1

变量拆分常用来迭代元组或列表序列:

seq = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
for a, b, c in seq:
print('a={0}, b={1}, c={2}'.format(a, b, c))
a=1, b=2, c=3
a=4, b=5, c=6
a=7, b=8, c=9

Python最近新增了更多高级的元组拆分功能,允许从元组的开头“摘取”几个元素。它使用
了特殊的语法*rest,这也用在函数签名中以抓取任意长度列表的位置参数:

values = 1, 2, 3, 4, 5
a, b, *rest = values
a, b
 (1, 2)
 rest
  [3, 4, 5]

rest的部分是想要舍弃的部分,rest的名字不重要。作为惯用写法,许多Python程序员会将不需要的变量使用下划线:

 a, b, *_ = values
  • tuple方法
    因为元组的大小和内容不能修改,它的实例方法都很轻量。其中一个很有用的就是count
    (也适用于列表),它可以统计某个值得出现频率:
a = (1, 2, 2, 2, 3, 4, 2)
a.count(2)
4

数据可视化

常用:Pyecharts、highcharts

1.官网数据可视化图形:

https://gallery.pyecharts.org/#/README

2.Pyecharts配置项使用

所有配置项官网:https://pyecharts.org

  • 常见官网查询特定配置项

标题配置项
https://pyecharts.org/#/zh-cn/global_options?id=titleopts%ef%bc%9a%e6%a0%87%e9%a2%98%e9%85%8d%e7%bd%ae%e9%a1%b9
图例配置项
https://pyecharts.org/#/zh-cn/global_options?id=legendopts%ef%bc%9a%e5%9b%be%e4%be%8b%e9%85%8d%e7%bd%ae%e9%a1%b9
视觉映射配置项
https://pyecharts.org/#/zh-cn/global_options?id=visualmapopts%ef%bc%9a%e8%a7%86%e8%a7%89%e6%98%a0%e5%b0%84%e9%85%8d%e7%bd%ae%e9%a1%b9
设置系列配置项
https://pyecharts.org/#/zh-cn/series_options?id=itemstyleopts%ef%bc%9a%e5%9b%be%e5%85%83%e6%a0%b7%e5%bc%8f%e9%85%8d%e7%bd%ae%e9%a1%b9

3.Pyecharts配置项简介

pyecharts的图表样式都是通过配置来操作的,包括初始化、全局配置项、系列配置项、图表配置项等。

  • 初始化配置

在初始化配置中,可以设置画布的长、宽,网页标题、图表主题、背景色等;
初始化可通过options.InitOpts设置

#初始化配置项
    Pie(
        init_opts=opts.InitOpts(
            # 图表画布宽度
            width="1200px",
            # 图表画布高度
            height="700px",
            # 网页标题
            page_title='我是网页标题',
            # 图表主题
            theme='dark',
            # 图表背景颜色
            bg_color="#2c343c",
            # 图表 ID,图表唯一标识,用于在多图表时区分
            chart_id='',
            )
  • 全局配置项

全局配置项通过set_global_options方法设置
1.标题配置项
标题配置项中常用的为标题内容及展示位置、标题字体、大小等

#title_opts为全局配置项中标题设置参数
#options.TitleOpts为全局配置项中标题设置的值,是一个方法
#方法的参数包括图表标题名称title、位置pos_left、pos_right等,以下表示居中显示
title_opts=options.TitleOpts(title="示例",pos_left="center",pos_right="center")
                                                     
#title_textstyle_opts是options.TitleOpts的另一个参数,表示文本类型
#options.TextStyleOpts为设置文本字体、大小的值,以下表示字体为“微软雅黑”,字体大小为12
title_textstyle_opts=options.TextStyleOpts(font_family="微软雅黑",font_size="12")

2.图表Y轴样式
图表分割线也需要在全局配置项中设置

#yaxis_opts为全局配置的y轴展示样式参数
#options.AxisOpts为系列配置项的坐标轴配置
#splitline_opts表示是否展示坐标轴的分割线,默认为False,即不展示
yaxis_opts=options.AxisOpts(splitline_opts=options.SplitLineOpts(is_show=True))

3.图例设置项
图例的展示形式、位置也是需要在全局配置项中设置的

# legend_opts表示全局配置的图例配置项
#options.LegendOpts表示图例配置项的值,可以配置位置、字体、大小等,如下:
 legend_opts=options.LegendOpts(pos_bottom="0",
                                                        textstyle_opts=options.TextStyleOpts(font_family="微软雅黑",font_size="8"))

  • 系列配置项
    系列配置项通过set_series_opts方法设置
    1.标签配置项
    标签配置项可配置标签的字体颜色、字体大小等
#label_opts表示标签选项参数
#options.LabelOpts表示配置标签选项的方法
#方法包括颜色配置、字体、大小等
.set_series_opts(label_opts=options.LabelOpts(color="#0A0A0D",font_family="微软雅黑",font_size="10"))

2.分割线配置项
分割线配置项作为系列配置项,常用作全局配置项中的Y轴样式的参数值

yaxis_opts=options.AxisOpts(splitline_opts=options.SplitLineOpts(is_show=True))

  • 图表配置项
    除了全局和系列配置项,具体的图表类型也有自己独特的配置项,比如柱状图就可以设置柱子之间的宽度、柱子的宽度以及柱子的颜色
#category_gap可以设置柱子的宽度,因为默认的柱子宽度可能会宽,不好看
#options.ItemStyleOpts可以设置柱子的颜色,如果会js,可以嵌入js实现柱子不同的颜色
bar.add_yaxis("",data,category_gap='60%',itemstyle_opts=options.ItemStyleOpts(color="#ccc"))

  • 具体示例
#设置全局配置项
    .set_global_opts(
    # 标题配置项,更多请看官方文档https://pyecharts.org/#/zh-cn/global_options?id=titleopts%ef%bc%9a%e6%a0%87%e9%a2%98%e9%85%8d%e7%bd%ae%e9%a1%b9
    title_opts=opts.TitleOpts(title="主标题",
                              title_textstyle_opts=opts.TextStyleOpts(font_size=25),#文本大小
                              title_link='xxx.html', # 主标题跳转 URL 链接
                              subtitle='副标题',
                              subtitle_textstyle_opts=opts.TextStyleOpts(font_style='oblique',font_family='Microsoft YaHei', color='#eb1212')#字体风格,字体样式,字体颜色,
                              ),
    # 图例配置项,更多请看官方文档https://pyecharts.org/#/zh-cn/global_options?id=legendopts%ef%bc%9a%e5%9b%be%e4%be%8b%e9%85%8d%e7%bd%ae%e9%a1%b9
    legend_opts=opts.LegendOpts(
        is_show=True, #  是否显示图例组件
        #图例组件离容器左侧的距离。
        # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
        # 也可以是 'left', 'center', 'right'。
        # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
        pos_left = '900px',
        # 图例组件离容器右侧的距离。
        # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
        pos_right = None,
        # 图例组件离容器上侧的距离。
        # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
        # 也可以是 'top', 'middle', 'bottom'。
        # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
        pos_top = '30px',
        # 图例组件离容器下侧的距离。
        # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
        pos_bottom = None,
        # 图例列表的布局朝向。可选:'horizontal', 'vertical'
        orient = 'vertical',
        # 图例标记和文本的对齐。默认自动(auto)
        # 根据组件的位置和 orient 决定
        # 当组件的 left 值为 'right' 以及纵向布局(orient 为 'vertical')的时候为右对齐,即为 'right'。
        # 可选参数: `auto`, `left`, `right`
        align = 'auto',
        # 图例内边距,单位px,默认各方向内边距为5
        padding = 5,
        # 图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。
        # 默认间隔为 10
        item_gap = 10,
        # 图例标记的图形宽度。默认宽度为 25
        item_width = 25,
        # 图例标记的图形高度。默认高度为 14
        item_height = 14,
        # 图例关闭时的颜色。默认是 #ccc
        inactive_color = '#ffffff',
        ),
    # 视觉映射配置项https://pyecharts.org/#/zh-cn/global_options?id=visualmapopts%ef%bc%9a%e8%a7%86%e8%a7%89%e6%98%a0%e5%b0%84%e9%85%8d%e7%bd%ae%e9%a1%b9
    visualmap_opts = opts.VisualMapOpts(
            # 是否为分段型
            is_piecewise = True,
            # 是否反转 visualMap 组件
            is_inverse = False,
            # 自定义的每一段的范围,以及每一段的文字,以及每一段的特别的样式。例如:
            pieces = [
              {"min": 1500}, #// 不指定 max,表示 max 为无限大(Infinity)。
              # {"min": 900, "max": 1500},
              {"min": 310, "max": 1000},
              {"min": min(fv), "max": max(fv)},###这里由于数据范围的缘故,导致渲染出的图不好看
              {"min": 10, "max": max(fv)/2, "label": f'10 到 {max(fv)/2}(自定义label)'},
              {"value": fv[0], "label": '123(自定义特殊颜色)', "color": 'grey'}, #//表示 value 等于 123 的情况
              {"value": fv, "label": 'SSS', "color": 'red'},
              {"max": 5}     #// 不指定 min,表示 min 为无限大(-Infinity)。
            ]
        ),
    )
    #设置系列配置项,https://pyecharts.org/#/zh-cn/series_options?id=itemstyleopts%ef%bc%9a%e5%9b%be%e5%85%83%e6%a0%b7%e5%bc%8f%e9%85%8d%e7%bd%ae%e9%a1%b9
    # .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    .render("pie_position.html")
)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值