最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年02月24日 11:55:27   作者:mighty13  
這篇文章主要介紹了matplotlib之屬性組合包(cycler)的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

matplotlib的依賴包cycler是matplotlib自主開發(fā)的屬性組合包,功能與內置模塊itertools很多函數(shù)非常相似,可用于創(chuàng)建特殊的迭代器。matpoltlib在屬性設置底層中使用了cycler包,典型的案例就是在多數(shù)據(jù)系列繪圖中循環(huán)使用顏色、線條等外觀設置。使用cycler可以避免構造多重循環(huán),更簡便、靈活的組合屬性。

cycler包概述

cycler包的API主要有三個:

  • cycler(*args, **kwargs):工廠函數(shù),創(chuàng)建一個Cycler對象。cycler(*args, **kwargs)有三種調用方式:
    • cycler(arg):arg為Cycler對象。復制Cycler對象的構造函數(shù)。
    • cycler(label1=iter1[, label2=iter2[, ...]]):label必須是有效的Python標識符,要求類似字典的鍵,iter為可迭代對象。求多組參數(shù)的點積,功能類似于zip()函數(shù)。
    • cycler(label, itr):從一對label和可迭代對象構造Cycler對象。這里label可以為整數(shù)和帶空格的字符串。
  • Cycler(left[, right, op]) :底層類。
  • concat(left, right) :拼接兩個cycler對象。

基本功能

cycler的基本功能是方便的將一個可哈希的對象(hashable)與一系列值進行映射。
根據(jù)下面的例子可知,cycler對象可以將關鍵字參數(shù)名稱與序列進行一一映射,cycler對象是一個迭代器,迭代輸出的對象為字典結構,鍵為關鍵字參數(shù)名稱,值為序列的元素。

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的基本功能與循環(huán)非常相似,cycler的強大在于創(chuàng)建復雜的屬性組合。

加法運算(cycler對象相加)

兩個cycler對象進行加法運算,相當于將兩個對象的元素按次序一一組合,功能類似于Python內置的zip()函數(shù)。

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函數(shù)傳遞多個關鍵字參數(shù)就相當于對這些參數(shù)進行加法運算
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()函數(shù)。

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對象與整數(shù)相乘)

cycler對象與整數(shù)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'}

常規(guī)多重循環(huán)方法

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避免了多重循環(huán),當屬性種類較多時更簡潔,更加靈活。

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

相關文章

  • Python利用smtplib實現(xiàn)郵件發(fā)送

    Python利用smtplib實現(xiàn)郵件發(fā)送

    在當今數(shù)字時代,電子郵件已成為我們生活和工作中不可或缺的一部分,本篇文章將為你講解如何在Python發(fā)送郵件,并為你提供實現(xiàn)的多種方式,希望對大家有所幫助
    2023-06-06
  • 利用Python提取PDF文本的簡單方法實例

    利用Python提取PDF文本的簡單方法實例

    日常工作中我們經常會用到pdf格式的文件,大多數(shù)情況下是瀏覽或者編輯pdf信息,但有時候需要提取pdf中的文本,下面這篇文章主要給大家介紹了關于利用Python提取PDF文本的簡單方法,需要的朋友可以參考下
    2022-07-07
  • Python基于OpenCV庫Adaboost實現(xiàn)人臉識別功能詳解

    Python基于OpenCV庫Adaboost實現(xiàn)人臉識別功能詳解

    這篇文章主要介紹了Python基于OpenCV庫Adaboost實現(xiàn)人臉識別功能,結合實例形式分析了Python下載與安裝OpenCV庫及相關人臉識別操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • 使用tensorflow顯示pb模型的所有網絡結點方式

    使用tensorflow顯示pb模型的所有網絡結點方式

    今天小編就為大家分享一篇使用tensorflow顯示pb模型的所有網絡結點方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • PyQt5的PyQtGraph實踐系列3之實時數(shù)據(jù)更新繪制圖形

    PyQt5的PyQtGraph實踐系列3之實時數(shù)據(jù)更新繪制圖形

    這篇文章主要介紹了PyQt5的PyQtGraph實踐系列3之實時數(shù)據(jù)更新繪制圖形,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 初學者學習Python好還是Java好

    初學者學習Python好還是Java好

    在本篇文章里小編給大家分享的是關于初學者學習Python好還是Java好的相關內容,需要的朋友們可以學習下。
    2020-05-05
  • win10系統(tǒng)下python3安裝及pip換源和使用教程

    win10系統(tǒng)下python3安裝及pip換源和使用教程

    這篇文章主要介紹了win10系統(tǒng)下python3安裝及pip換源和使用教程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Pycharm無法打開雙擊沒反應的問題及解決方案

    Pycharm無法打開雙擊沒反應的問題及解決方案

    這篇文章主要介紹了Pycharm無法打開,雙擊沒反應,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Python網絡爬蟲中的同步與異步示例詳解

    Python網絡爬蟲中的同步與異步示例詳解

    這篇文章主要給大家介紹了關于Python網絡爬蟲中同步與異步的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02
  • python如何操作mysql

    python如何操作mysql

    這篇文章主要介紹了python如何操作MySQL,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-08-08

最新評論

县级市| 玛纳斯县| 伊宁县| 昆明市| 翁源县| 合江县| 乐昌市| 东海县| 双柏县| 汝城县| 湘阴县| 望江县| 麻阳| 吉木乃县| 武川县| 武胜县| 含山县| 渭源县| 策勒县| 黔江区| 彰化县| 唐河县| 白银市| 旌德县| 太白县| 乌拉特前旗| 常熟市| 武城县| 客服| 伊川县| 黄平县| 拜城县| 平遥县| 丹东市| 禹城市| 松潘县| 泸溪县| 且末县| 田东县| 迭部县| 禄丰县|