前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >通过cycler实现属性的自动映射

通过cycler实现属性的自动映射

作者头像
生信修炼手册
发布于 2020-09-14 03:01:28
发布于 2020-09-14 03:01:28
66700
代码可运行
举报
文章被收录于专栏:生信修炼手册生信修炼手册
运行总次数:0
代码可运行

在matplotlib中,默认存在一个颜色 的自动映射机制,当我们绘制多条直线时,会通过这个颜色映射机制来为每条直线赋予不同的颜色,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> x = np.linspace(0, 3 * np.pi, 50)
>>> offsets = np.linspace(0, 2 * np.pi, 4, endpoint=False)
>>> for i in range(6):
...     y = np.sin(x) + i
...     plt.plot(x, y)
...

>>> plt.show()

输出结果如下

具体是如何实现这个功能的呢?其实是通过axes.prop_cycle这个属性,该属性用于设置一些基本的属性映射,默认情况下,设置了颜色的自动映射

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import matplotlib
>>> matplotlib.rcParams['axes.prop_cycle']
cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])

可以看到,默认的映射属性为颜色,然后对应了一系列的颜色梯度,当我们绘制多条颜色时,每条直线的颜色对应该颜色梯度中的一个具体颜色。当线条个数超出了颜色梯度的范围时,会自动循环利用,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import matplotlib.pyplot as plt
>>> import numpy as np

>>> x = np.linspace(0, 3 * np.pi, 50)
>>>
>>> offsets = np.linspace(0, 2 * np.pi, 4, endpoint=False)
>>> for i in range(20):
... y = np.sin(x) + i
... plt.plot(x, y)
...

>>> plt.show()

输出结果如下

可以看到,超过10条之后,线条的颜色出现了循环重复。通过cyler模块,我们可以自定义这样的属性循环,用法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> from cycler import cycler
>>> custom_cycler = cycler(color=['c', 'm', 'y', 'k'])
>>> fig, ax = plt.subplots()
>>> ax.set_prop_cycle(custom_cycler)
>>> x = np.linspace(0, 3 * np.pi, 50)
>>> offsets = np.linspace(0, 2 * np.pi, 4, endpoint=False)
>>> for i in range(6):
... y = np.sin(x) + i
... ax.plot(x, y)
...

>>> plt.show()

上述代码通过Cycler定义了颜色的循环,然后通过set_prop_cycle将该颜色循环添加到特定的axes对象上,输出结果如下

其实,该循环可以定义的属性很多,颜色,线条宽度,线条样式等常用属性都可以进行定义,而且不同的循环还可以进行叠加,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> from cycler import cycler
>>> custom_cycler = cycler(cycler(color=['c', 'm', 'y']) + cycler(linestyle=['-', '--', ':']))
>>> fig, ax = plt.subplots()
>>> ax.set_prop_cycle(custom_cycler)
>>> x = np.linspace(0, 3 * np.pi, 50)
>>> offsets = np.linspace(0, 2 * np.pi, 4, endpoint=False)
>>> for i in range(6):
... y = np.sin(x) + i
... ax.plot(x, y)
...

>>> plt.show()

当多个循环相加时,必须保证其长度相同,上述代码中每个属性的梯度长度都为3,输出结果如下

通过cycler为相同元素添加属性的自动映射,极大提高了绘图效率。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【数学建模】——matplotlib简单应用
Matplotlib 是一个强大的 Python 可视化库,广泛应用于绘制各种图形。其基本用法包括导入必要的模块,如 numpy 和 matplotlib.pyplot,并生成数据进行绘图。例如,可以通过线图、散点图、柱状图和雷达图来展示数据。创建三维图形需要使用 mpl_toolkits.mplot3d 库。使用 matplotlib 进行可视化可以通过简单的代码实现,包括设置标签、图例、颜色和线型等,以生成直观的图表来分析和展示数据。
小李很执着
2024/08/05
1220
【数学建模】——matplotlib简单应用
2022世界杯的呈现:用简单的python代码画出
世界杯是足球界最重要的盛会,每四年举办一次,吸引了全世界的目光。作为一名程序员,我希望通过代码的方式来呈现这一盛事。
Twcat_tree
2022/12/13
5140
TUEplots,一天100张论文配图,导师惊了···
今天给大家介绍一个好用的Python绘图拓展工具-TUEplots,可以帮助使用者轻松将绘图结果调整成符合出版级别的可视化结果。
DataCharm
2023/10/07
3440
TUEplots,一天100张论文配图,导师惊了···
基于Matplotlib的高级数据可视化技术与实践探索
文章链接:https://cloud.tencent.com/developer/article/2466769
一键难忘
2024/11/21
2180
maplotlib 标准颜色、风格样式和水印
一、标准颜色列表 """ ======================== Visualizing named colors ======================== Simple plot
用户6021899
2019/08/14
8740
Matplotlib 绘2D图
Matplotlib 是一个非常简单而又完善的开源绘图库。那么它到底有多简单呢? 基本知识 首先官方文档奉上 下面,我们通过 3 行代码绘制一张简单的折线图。 from matplotlib imp
听城
2018/04/27
2.4K0
Matplotlib 绘2D图
Python基础(十二) | 还不会python绘图?两万字博文教你Matplotlib库(超详细总结)
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib.pyplot.plot
timerring
2022/10/08
2.5K0
Python基础(十二) | 还不会python绘图?两万字博文教你Matplotlib库(超详细总结)
「Python」matplotlib备忘
总结了一下网上现有的资源,得到了一些东西。随手做个备忘。 更多设置见:https://matplotlib.org/users/customizing.html。
py3study
2020/01/19
6980
「Python」matplotlib备忘
玩转Matplotlib的10个高级技巧
Matplotlib是Python中流行的数据可视化库,仅使用简单的几行代码就可以生成图表。但是默认的方法是生成的图表很简单,如果想增强数据演示的影响和清晰度,可以试试本文总结的10个高级技巧,这些技巧可以将可视化提升到一个新的水平:
deephub
2023/08/30
2550
玩转Matplotlib的10个高级技巧
python matplotlib各种绘图类型完整总结
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)
Twcat_tree
2022/12/05
6K0
python matplotlib各种绘图类型完整总结
连续偏移曲线的情况,其中偏移量以数据单位给出。
import matplotlib.pyplot as plt from matplotlib import collections, colors, transforms import numpy as np nverts = 50 npts = 100 # Make some spirals r = np.arange(nverts) theta = np.linspace(0, 2*np.pi, nverts) xx = r * np.sin(theta) yy = r * np.cos(the
裴来凡
2022/05/28
3980
连续偏移曲线的情况,其中偏移量以数据单位给出。
Python3快速入门(十六)——Mat
Matplotlib是 Python 2D-绘图领域使用最广泛的套件,可以简易地将数据图形化,并且提供多样化的输出格式。 matplotlib有两个接口,一个是状态机层的接口,通过pyplot模块来进行管理;一个是面向对象的接口,通过pylab模块将所有的功能函数全部导入其单独的命名空间内。
py3study
2020/01/03
1.3K0
【python图像处理】python绘制
3D图形在数据分析、数据建模、图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行3D图形的绘制,包括3D散点、3D表面、3D轮廓、3D直线(曲线)以及3D文字等的绘制。
py3study
2020/01/10
1.6K0
【python图像处理】python绘制
掌握进阶:高级功能、图表定制与地理数据绘制
Matplotlib是一个功能强大的数据可视化库,为数据科学家提供了丰富的工具和功能,可以以直观的方式呈现数据。
一键难忘
2023/12/19
9420
matplotlib
r表示不需要转义,raw(生的),LATEX用法,python中使用latex,需要在文本的后面加上$,\pi会转义为pi
h3110_w0r1d
2024/02/19
1590
matplotlib
Python数据可视化-第3章-图表辅助元素的定制
图表的辅助元素是指除了根据数据绘制的图形之外的元素,常用的辅助元素包括坐标轴、标题、图例、网格、参考线、参考区域、注释文本和表格,它们都可以对图形进行补充说明。
用户2225445
2025/03/31
840
Python数据可视化-第3章-图表辅助元素的定制
机器学习笔记之Matplotlib库legend() scatter() plot() figure() subplot()函数参数解释
语法参数如下: matplotlib.pyplot.legend(*args, **kwargs)
Jetpropelledsnake21
2020/12/28
2.4K0
机器学习笔记之Matplotlib库legend() scatter() plot() figure() subplot()函数参数解释
数据可视化之matplotlib绘制正余弦曲线图
在python里面,数据可视化是python的一个亮点。在python里面,数据可视可以达到什么样的效果,这当然与我们使用的库有关。python常常需要导入库,并不断调用方法,就很像一条流数据可视化的库,有很多,很多都可以后续开发,然后我们调用。了解过pyecharts美观的可视化界面 ,将pyecharts和matplotlib相对比一下。
兰舟千帆
2022/07/16
1.8K0
数据可视化之matplotlib绘制正余弦曲线图
Python数据分析Matplotlib
1.2 使用matplotlib.pyplot中的annotate()函数标注文字
荣仔_最靓的仔
2021/02/02
3.5K0
Python数据分析Matplotlib
数据可视化 | 16个 matplotlib 绘图实用小技巧
matplotlib.pyplot 对象中有个 title() 可以设置表格的标题。
咸鱼学Python
2020/04/08
8050
数据可视化 | 16个 matplotlib 绘图实用小技巧
推荐阅读
相关推荐
【数学建模】——matplotlib简单应用
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文