返回顶部
首页 > 资讯 > 精选 >cycler属性组合包怎么在matplotlib中使用
  • 160
分享到

cycler属性组合包怎么在matplotlib中使用

2023-06-06 12:06:59 160人浏览 泡泡鱼
摘要

这篇文章给大家介绍cycler属性组合包怎么在matplotlib中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。matplotlib的依赖包cycler是matplotlib自主开发的属性组合包,功能与内置模块i

这篇文章给大家介绍cycler属性组合包怎么在matplotlib中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

matplotlib的依赖包cycler是matplotlib自主开发的属性组合包,功能与内置模块itertools很多函数非常相似,可用于创建特殊的迭代器。matpoltlib在属性设置底层中使用了cycler包,典型的案例就是在多数据系列绘图中循环使用颜色、线条等外观设置。使用cycler可以避免构造多重循环,更简便、灵活的组合属性。

cycler包概述

cycler包的api主要有三个:

  • cycler(*args, **kwargs):工厂函数,创建一个Cycler对象。cycler(*args, **kwargs)有三种调用方式:

    • cycler(arg):arg为Cycler对象。复制Cycler对象的构造函数。

    • cycler(label1=iter1[, label2=iter2[, ...]]):label必须是有效的python标识符,要求类似字典的键,iter为可迭代对象。求多组参数的点积,功能类似于zip()函数。

    • cycler(label, itr):从一对label和可迭代对象构造Cycler对象。这里label可以为整数和带空格的字符串

  • Cycler(left[, right, op]) :底层类。

  • concat(left, right) :拼接两个cycler对象。

基本功能

cycler的基本功能是方便的将一个可哈希的对象(hashable)与一系列值进行映射。
根据下面的例子可知,cycler对象可以将关键字参数名称与序列进行一一映射,cycler对象是一个迭代器,迭代输出的对象为字典结构,键为关键字参数名称,值为序列的元素。

In [1]: from cycler import cyclerIn [2]: color_cycle = cycler(color=['r', 'g', 'b'])In [3]: color_cycleOut[3]: cycler('color', ['r', 'g', 'b'])In [4]: len(color_cycle)Out[4]: 3In [5]: color_cycle.keysOut[5]: {'color'}In [6]: for i in color_cycle:  ...:   print(i)  ...:{'color': 'r'}{'color': 'g'}{'color': 'b'}

cycler的基本功能与循环非常相似,cycler的强大在于创建复杂的属性组合。

加法运算(cycler对象相加)

两个cycler对象进行加法运算,相当于将两个对象的元素按次序一一组合,功能类似于Python内置的zip()函数。

In [1]: from cycler import cyclerIn [2]: color_cycle = cycler(color=['r', 'g', 'b'])In [3]: lw_cycle = cycler(lw=range(1, 4))In [4]: wc = lw_cycle + color_cycleIn [5]: for s in wc:  ...:   print(s)  ...:{'lw': 1, 'color': 'r'}{'lw': 2, 'color': 'g'}{'lw': 3, 'color': 'b'} cycler函数传递多个关键字参数就相当于对这些参数进行加法运算In [1]: from cycler import cyclerIn [2]: wc = cycler(c=['r', 'g', 'b'], lw=range(3))In [3]: for s in wc:  ...:   print(s)  ...:{'c': 'r', 'lw': 0}{'c': 'g', 'lw': 1}{'c': 'b', 'lw': 2}

乘法运算(cycler对象相乘)

两个cycler对象进行乘法运算,相当于求两个对象的元素的笛卡尔积,功能类似于Python内置的itertools.product()函数。

In [1]: from cycler import cyclerIn [2]: color_cycle = cycler(color=['r', 'g', 'b'])In [3]: m_cycle = cycler(marker=['s', 'o'])In [4]: m_c = m_cycle * color_cycleIn [5]: for s in m_c:  ...:   print(s)  ...:{'marker': 's', 'color': 'r'}{'marker': 's', 'color': 'g'}{'marker': 's', 'color': 'b'}{'marker': 'o', 'color': 'r'}{'marker': 'o', 'color': 'g'}{'marker': 'o', 'color': 'b'}

标量乘法运算(cycler对象与整数相乘)

cycler对象与整数n相乘,相当于遍历n次cycler对象。

In [1]: from cycler import cyclerIn [2]: color_cycle = cycler(color=['r', 'g', 'b'])In [3]: color_cycle * 2Out[3]: cycler('color', ['r', 'g', 'b', 'r', 'g', 'b'])

cycler对象拼接

cycler对象拼接有一个前提就是两个对象必须有相同的键!

In [1]: from cycler import cyclerIn [2]: color_cycle = cycler(color=['r', 'g', 'b'])In [3]: color_cycle2 = cycler(color=['c', 'm', 'y', 'k'])In [4]: color_cycle = color_cycle.concat(color_cycle2)In [5]: color_cycleOut[6]: cycler('color', ['r', 'g', 'b', 'c', 'm', 'y', 'k'])In [7]: color_cycle3 = cycler(gray=['0.5'])In [8]: color_cycle = color_cycle.concat(color_cycle3)---------------------------------------------------------------------------ValueError                Traceback (most recent call last)ValueError: Keys do not match:    Intersection: set()    Disjoint: {'color', 'gray'}

cycler对象切片

cycler对象支持切片操作。

In [1]: from cycler import cyclerIn [2]: color_cycle = cycler(color=['r', 'g', 'b'])In [3]: color_cycle[:2]Out[3]: cycler('color', ['r', 'g'])In [4]: color_cycle[::-1]Out[4]: cycler('color', ['b', 'g', 'r'])

案例:设置线条属性

使用cycler

from cycler import cyclerimport matplotlib.pyplot as pltcolor_cycle = cycler(color=['r', 'g', 'b'])m_cycle = cycler(marker=['s', 'o'])m_c = m_cycle * color_cyclefor i, j in enumerate(m_c):  print(i, j)  plt.plot([i, i], **j)plt.show()

cycler属性组合包怎么在matplotlib中使用

0 {'marker': 's', 'color': 'r'}
1 {'marker': 's', 'color': 'g'}
2 {'marker': 's', 'color': 'b'}
3 {'marker': 'o', 'color': 'r'}
4 {'marker': 'o', 'color': 'g'}
5 {'marker': 'o', 'color': 'b'}

常规多重循环方法

import matplotlib.pyplot as pltmarker=['s', 'o']color=['r', 'g', 'b']n=0for i in marker:  for j in color:    plt.plot([n, n], marker=i, c=j)    n = n+1plt.show()

关于cycler属性组合包怎么在matplotlib中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: cycler属性组合包怎么在matplotlib中使用

本文链接: https://lsjlt.com/news/247021.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • cycler属性组合包怎么在matplotlib中使用
    这篇文章给大家介绍cycler属性组合包怎么在matplotlib中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。matplotlib的依赖包cycler是matplotlib自主开发的属性组合包,功能与内置模块i...
    99+
    2023-06-06
  • clear:both属性怎么在CSS中使用
    这篇文章给大家介绍 clear:both属性怎么在CSS中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。clear:both用来清除浮动这是一直来的印象,但是自己很少会用这个,理解其实也不太正确,今天查查了资料,记...
    99+
    2023-06-08
  • position属性怎么在CSS中使用
    这篇文章将为大家详细讲解有关position属性怎么在CSS中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。CSS中的定位模式规定了一个盒子在总体的布局上应该处于什么位置以及对周围的盒子...
    99+
    2023-06-08
  • 怎么在CSS中使用position属性
    这期内容当中小编将会给大家带来有关怎么在CSS中使用position属性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。【DIV+CSS布局之position属性:absolute】意思是:他的意思是绝对定...
    99+
    2023-06-09
  • clearfix属性怎么在css中使用
    clearfix属性怎么在css中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Div布局如下:Css代码如下:CSS Code复制内容到剪贴板.out{border:1p...
    99+
    2023-06-08
  • 怎么在css中使用float属性
    怎么在css中使用float属性?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在页面布局中,假设有两个div,需求是两个div在同一排上;其中解决办法之一就是利...
    99+
    2023-06-08
  • important属性怎么在css中使用
    这篇文章给大家介绍important属性怎么在css中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。!important语法选择器{样式:值!important;}!important为开发者提供了一个增加样式权重...
    99+
    2023-06-14
  • filter属性怎么在CSS中使用
    这篇文章给大家介绍filter属性怎么在CSS中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。filter 属性定义了元素的可视效果blur给图像设置高斯模糊。"radius"一值设定高斯函数的...
    99+
    2023-06-08
  • python属性包怎么用
    这篇文章主要介绍python属性包怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!属性包你可以使用attrs代替数据类,选择attrs有两个原因:使用的Python版本高于3.7想要更多功能Theattrs软件包...
    99+
    2023-06-27
  • 怎么在CSS中使用z-index属性
    本篇文章为大家展示了怎么在CSS中使用z-index属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。默认的摆放规则假定元素没有指定z-index属性,那么元素按照如下顺序叠放(从底到顶) ...
    99+
    2023-06-09
  • 怎么在css中使用line-height属性
    本篇文章给大家分享的是有关怎么在css中使用line-height属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。行间距,即传说中控制两行文字垂直距离的东东。在CSS中,li...
    99+
    2023-06-09
  • flex-shrink属性怎么在CSS3中使用
    今天就跟大家聊聊有关flex-shrink属性怎么在CSS3中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在CSS3 Flexbox中flex-shrink属性定义为: Thi...
    99+
    2023-06-09
  • 怎么在CSS3中使用ruby-position属性
    怎么在CSS3中使用ruby-position属性?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。属性值before 注音文本会在基础文字上面表示。(默...
    99+
    2023-06-08
  • column-fill属性怎么在CSS3中使用
    column-fill属性怎么在CSS3中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。column-fill 属性, 指定列之间高度是否对齐时使用。<规定如何对列进...
    99+
    2023-06-08
  • 怎么在css中使用background-position属性
    这期内容当中小编将会给大家带来有关怎么在css中使用background-position属性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。语法:background-position : length ...
    99+
    2023-06-09
  • clip-path属性怎么在CSS中使用
    clip-path属性怎么在CSS中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。clip-path的使用polygon值为多个坐标点组成,坐标第一个值是x...
    99+
    2023-06-08
  • border与display属性怎么在css中使用
    今天就跟大家聊聊有关border与display属性怎么在css中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。border属性介绍border属性设置元素边框。边框3个要素如:...
    99+
    2023-06-08
  • 怎么在CSS3中使用Animation动画属性
    本篇文章为大家展示了怎么在CSS3中使用Animation动画属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。要使用animation动画,先要熟悉一下keyframes,Keyframes的语法...
    99+
    2023-06-08
  • 怎么在python中使用__dict__存储属性
    怎么在python中使用__dict__存储属性?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C#...
    99+
    2023-06-14
  • 使用javascript怎么在object中删除属性
    使用javascript怎么在object中删除属性?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在js中,可以使用delete关键字在object中删除属性,语...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作