好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > matplotlib之屬性組合包(cycler)的使用

matplotlib之屬性組合包(cycler)的使用

熱門標簽:騰訊地圖標注有什么版本 外呼系統前面有錄音播放嗎 400電話辦理費用收費 深圳網絡外呼系統代理商 柳州正規電銷機器人收費 千呼ai電話機器人免費 鎮江人工外呼系統供應商 申請辦個400電話號碼 高德地圖標注字母

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 cycler
In [2]: color_cycle = cycler(color=['r', 'g', 'b'])
In [3]: color_cycle
Out[3]: cycler('color', ['r', 'g', 'b'])
In [4]: len(color_cycle)
Out[4]: 3
In [5]: color_cycle.keys
Out[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 cycler
In [2]: color_cycle = cycler(color=['r', 'g', 'b'])
In [3]: lw_cycle = cycler(lw=range(1, 4))
In [4]: wc = lw_cycle + color_cycle
In [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 cycler
In [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 cycler
In [2]: color_cycle = cycler(color=['r', 'g', 'b'])
In [3]: m_cycle = cycler(marker=['s', 'o'])
In [4]: m_c = m_cycle * color_cycle
In [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 cycler
In [2]: color_cycle = cycler(color=['r', 'g', 'b'])
In [3]: color_cycle * 2
Out[3]: cycler('color', ['r', 'g', 'b', 'r', 'g', 'b'])

cycler對象拼接

cycler對象拼接有一個前提就是兩個對象必須有相同的鍵!

In [1]: from cycler import cycler
In [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_cycle
Out[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 cycler
In [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 cycler
import matplotlib.pyplot as plt

color_cycle = cycler(color=['r', 'g', 'b'])
m_cycle = cycler(marker=['s', 'o'])
m_c = m_cycle * color_cycle
for i, j in enumerate(m_c):
  print(i, j)
  plt.plot([i, i], **j)
plt.show()

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 plt

marker=['s', 'o']
color=['r', 'g', 'b']

n=0
for i in marker:
  for j in color:
    plt.plot([n, n], marker=i, c=j)
    n = n+1
plt.show()

案例總結

相對而言,使用cycler避免了多重循環,當屬性種類較多時更簡潔,更加靈活。

到此這篇關于matplotlib之屬性組合包(cycler)的使用的文章就介紹到這了,更多相關matplotlib 屬性組合包內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • matplotlib事件處理基礎(事件綁定、事件屬性)
  • 關于matplotlib-legend 位置屬性 loc 使用說明
  • 詳解Matplotlib繪圖之屬性設置
  • 簡單了解Python matplotlib線的屬性

標簽:平頂山 烏蘭察布 哈爾濱 郴州 合肥 烏蘭察布 大慶 海南

巨人網絡通訊聲明:本文標題《matplotlib之屬性組合包(cycler)的使用》,本文關鍵詞  matplotlib,之,屬性,組合,包,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《matplotlib之屬性組合包(cycler)的使用》相關的同類信息!
  • 本頁收集關于matplotlib之屬性組合包(cycler)的使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 电影《強姦》田中裕子| 日日碰狠狠添天天爽五月婷| 巜趁夫不在给公在线观看| 99国产精品久久久久久久| 亚洲精品国产精品乱码不97| 高+n+车多肉多p| 日韩999精品| 欧美肥妇bbwbbw| 免费不卡毛片| 《色欲迷墙》在线播放未删版| 秘?成人羞羞视频在线观| 亚洲视屏在线| 免费看美女隐私软件下载| 亚洲综合射| 连发十四发波多野结衣 剧情简介 人妻婬乱厨房波多野结衣hd | 羞羞网站在线观看| 装醉看娇妻被两个朋友玩| 新·ROSI福利视频| 欧美啪啪一区| 欧美一级精品| 亚洲AV一区二区天堂白乳流汁| 众筹李丽莎喷水视频在线观看| 小雄和秋芸在厨房| 爆操大胸美女| 理论上可行| 99日本在线播放| 韩国《少妇的滋味》电影| 男插女下体视频| 约会大作战黄漫h无遮挡| 日处女视频| 国产精品无码一区二区在线观| 国产精品成人免费一区二区视频| 日本摸大乳大胸综艺| 顾北俞雪娇的小说| 韩国漫画在线免费| 在线丨暗哟小u女精品视频| www.99精品| 一女被二男吃奶A片视频| 波多野结衣久久国产精品| 日本??奶头?裸体| 久久这里只有精品99|