Loading [MathJax]/jax/output/CommonHTML/jax.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用 matplotlib 绘制多彩的曲线

使用 matplotlib 绘制多彩的曲线

原创
作者头像
iam002
修改于 2021-08-26 02:21:09
修改于 2021-08-26 02:21:09
3.5K0
举报
文章被收录于专栏:日常学习笔记日常学习笔记

使用 matplotlib 绘制多彩的曲线

源码及参考链接

效果图

multicolors_line.png
multicolors_line.png

代码

代码语言:txt
AI代码解释
复制
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
from matplotlib.colors import ListedColormap, BoundaryNorm

x = np.linspace(0, 3*np.pi, 500)
y = np.sin(x)
dydx= np.cos(0.5*(x[:-1]+x[1:])) # 两点之间的中点的导数

"""
这里的目的是在两个点之间创建一个“小段”,每个段需要两个点.
np.concatenate() 用于将两个数组在指定的轴上进行合并(串联起来)
"""
points = np.array([x,y]).T.reshape(-1,1,2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)

fig, axs = plt.subplots(2,1,sharex=True,sharey=True)

"""
创建一个从数据点到颜色的(连续)映射
"""
norm = plt.Normalize(dydx.min(), dydx.max())
lc = LineCollection(segments, norm=norm, cmap='viridis')

lc.set_array(dydx) # 设置每个相当的值,对应一种颜色
lc.set_linewidth(2) # 设置线宽

line= axs[0].add_collection(lc)
fig.colorbar(line, ax=axs[0])

axs[0].set_xlim(x.min(), x.max())
axs[0].set_ylim(-1.1, 1.1)

"""
创建一个(边界)的映射关系
"""
cmap = ListedColormap(['r', 'g', 'b'])
# cmap有三种颜色,对应三段,因此需要4个点
norm = BoundaryNorm([-1, -0.5, 0.5, 1], cmap.N)
lc = LineCollection(segments, cmap=cmap, norm=norm)
lc.set_array(dydx)
lc.set_linewidth(2)
line = axs[1].add_collection(lc)
fig.colorbar(line, ax=axs[1])

plt.show()

代码中使用到的类简单介绍一下,具体参数或用法可以点击查看。

代码语言:txt
AI代码解释
复制
matplotlib.collections.LineCollection(segments, *args, zorder=2, **kwargs)
"""
segments : list of array-like
            A sequence of (*line0*, *line1*, *line2*), where::

                linen = (x0, y0), (x1, y1), ... (xm, ym)

            or the equivalent numpy array with two columns. Each line
            can have a different number of segments.
"""

其中可选的参数为

代码语言:txt
AI代码解释
复制
argnames = ["linewidths", "colors", "antialiaseds", "linestyles",
            "offsets", "transOffset", "norm", "cmap", "pickradius",
            "zorder", "facecolors"]
代码语言:txt
AI代码解释
复制
matplotlib.colors.ListedColormap(colors, name='from_list', N=None)
"""
colors : list, array
        List of Matplotlib color specifications, or an equivalent Nx3 or Nx4
        floating point array (*N* rgb or rgba values).
name : str, 
    optional String to identify the colormap.
N : int, 
    optional Number of entries in the map. The default is *None*,
"""
代码语言:txt
AI代码解释
复制
matplotlib.colors.BoundaryNorm(boundaries, ncolors, clip=False, *, extend='neither')
"""
boundaries : array-like,
            Monotonically increasing sequence of at least 2 boundaries.
ncolors : int,
        Number of colors in the colormap to be used.
"""

例如,norm = BoundaryNorm([-1, -0.5, 0.5, 1], 3),将分别映射一种颜色。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
气象绘图cmap、cbar超详细版(附示例)
在matplotlib和cartopy中,其常见的绘图命令,若是带有颜色映射的collection(s)类,则基本都可以引入cmap与colorbar功能来分析数据。cmap即是颜色映射表,colorbar即是颜色分析色条,前者只起到对绘图对象上色的功能,后者实现色阶与数值的对应。
自学气象人
2022/11/02
20.4K0
气象绘图cmap、cbar超详细版(附示例)
重磅!Python台风路径还能这样画
读者来信,想优化一版台风路径绘制 在检索了半天终于找到一个库,tcmarkers。
用户11172986
2024/06/20
5310
重磅!Python台风路径还能这样画
Python可视化 | CMA热带气旋最佳路径数据集读取与绘制
以前在简书分享过一个路径绘制的方法,然而对于更多情况的路径绘制来说(比如台风路径),每次的路径长度都是不一致的,同时也需要从一个数据文件里很复杂的读取。这次分享一个可以方便读取CMA热带气旋最佳路径数据集的方法。
郭好奇同学
2021/05/28
2.7K1
Python可视化 | CMA热带气旋最佳路径数据集读取与绘制
绘图技巧 | 超详细的Colorbar定制化绘制教程
本节提要:关于一些不常见的colorbar的仿制:弯曲与环形的colorbar、两端分离的colorbar、收缩colorbar的主副刻度、双刻度列colorbar、截取与拼接cmap、外部颜色引入cmaps与palettable库包、特别的格式定制、levels等距而colorbar刻度距离不等距、其他类型的伪colorbar、使刻度侧的框线与colorbar柱体分离。
DataCharm
2021/04/16
8.9K0
绘图技巧 | 超详细的Colorbar定制化绘制教程
绘图系列(1):利用matplotlib绘制等值线图
绘图系列是为了给出一些图形绘制示例,便于快速绘制一些图形。此系列不受所用语言和工具的限制,可能会使用 python,matlab,ncl,idl以及其它一些语言或是工具。
bugsuse
2020/04/21
2.8K0
绘图系列(1):利用matplotlib绘制等值线图
matplotlib安装及使用
matplotlib是基于python语言的开源项目,旨在为python提供一个数据绘图包。我将在这篇文章中介绍matplotlib API的核心对象,并介绍如何使用这些对象来实现绘图。实际上,matplotlib的对象体系严谨而有趣,为使用者提供了巨大的发挥空间。用户在熟悉了核心对象之后,可以轻易的定制图像。matplotlib的对象体系也是计算机图形学的一个优秀范例。即使你不是python程序员,你也可以从文中了解一些通用的图形绘制原则。matplotlib使用numpy进行数组运算,并调用一系列其他的python库来实现硬件交互。matplotlib的核心是一套由对象构成的绘图API。
狼啸风云
2023/10/07
6790
matplotlib安装及使用
使用 matplotlib 自定义Colormap
自定义 colormap 通常要使用 matplotlib.colors 模块中提供的函数和方法。 matplotlib.colors 是用来转换数字列表或颜色参数为 RGB 或 RGBA 的模块。RGB 和 RGBA 是具有3个或4个浮点数且数值在 [0, 1] 之间的序列。
bugsuse
2020/04/21
4.1K0
使用 matplotlib 自定义Colormap
气象人开发的高级科学绘图库Proplot!
Proplot对matplotlib进行了高度的封装,是一个高级绘图工具,其功能相当强大!而且融和了cartopy、basemap、xarray和pandas。看到这里这应该就是我一直想要的绘图工具了!
气象学家
2020/03/11
3.5K0
Python可视化 | 三维图形迁移
在前面推送中我们提到了通过collection功能而在3D地图中添加地图的方法,也短暂提到了栅格与填色两种图形样式的降维方法。但是从matplotlib这两个函数的底层有一定的局限性,比如下面这两张图的侧面填色就无法绘出:
郭好奇同学
2021/05/28
2.1K0
Python可视化 | 三维图形迁移
Python绘制日历图和热力图
本文以2019年全国各城市的空气质量观测数据为例,利用matplotlib、calmap、pyecharts绘制日历图和热力图。在绘图之前先利用pandas对空气质量数据进行处理。
气象学家
2020/04/13
3.7K0
ProPlot 基本语法及特点
科研论文配图多图层元素(字体、坐标轴、图例等)的绘制条件提出了更高要求,我们需要更改 Matplotlib 和 Seaborn 中的多个绘制参数,特别是在绘制含有多个子图的复杂图形时,容易造成绘制代码冗长。
timerring
2023/10/13
7050
ProPlot 基本语法及特点
又再肝3天,整理了65个Matplotlib案例,这能不收藏?
Matplotlib 作为 Python 家族当中最为著名的画图工具,基本的操作还是要掌握的,今天就来分享一波
周萝卜
2021/11/08
2.6K0
深入探讨在Matplotlib中自定义颜色映射与标签的实用指南
Matplotlib是Python中广泛使用的绘图库,其强大的功能和灵活性使其成为数据可视化的首选工具之一。在数据可视化中,颜色映射和标签是至关重要的元素,能够显著增强图表的可读性和美观度。本文将深入探讨如何在Matplotlib中自定义颜色映射与标签,并提供详细的代码实例。
一键难忘
2024/10/01
1K0
Python空间绘图-Colorbar详解
在我们绘制有色阶的图片时,多会用到colorbar这个关联利器,色条可以直接将数值与颜色连接在一起。常用的scatter、contourf是非常适合使用的。第一节我们来简要谈谈常用的colorbar参数,以后例子都基于contourf命令。
DataCharm
2021/02/22
21.2K0
Python空间绘图-Colorbar详解
Python可视化 | WRF模式模拟数据后处理(二)
导入模块 import numpy as np from netCDF4 import Dataset import matplotlib.pyplot as plt from matplotlib.cm import get_cmap from matplotlib.colors import from_levels_and_colors import cartopy.crs as crs import cartopy.feature as cfeature from cartopy.feature i
郭好奇同学
2021/08/26
4.1K0
Python可视化 | WRF模式模拟数据后处理(二)
Python空间绘图--Cartopy实例应用
本节提要:colorbar刻度标签的进一步操作、不使用默认ax传入自定义colorbar、matplotlib.colors与colorbar的结合操作。
DataCharm
2021/02/22
1.7K0
Python空间绘图--Cartopy实例应用
python+windows画图工具--复现别人论文中的colormap
首先,将别人论文中的colormap截图之后,拖到windows自带的画图工具中,选择吸管工具,然后点击其中一个颜色,(这里以图中的蓝色为例),再点击吸管工具,点到颜色上,然后再点击编辑工具,查看对应的RGB。
简朴
2022/11/11
7240
python+windows画图工具--复现别人论文中的colormap
使用Python绘制与定制3D曲面图全面指南
在数据可视化的世界中,3D曲面图是一种强大的工具,能够将复杂的数据模式以清晰直观的方式展现出来。Python提供了多种库和工具,使得创建和定制3D曲面图变得简单而令人兴奋。本文将介绍如何使用Python中的Matplotlib和mpl_toolkits.mplot3d库绘制令人印象深刻的3D曲面图。
一键难忘
2024/06/23
8330
GPM卫星 IMERG 降水产品的简单可视化
GPM数据写了下载教程,现在简单试试可视化,毕竟是nc格式数据(下载可选),用起来相对简单
用户11172986
2024/07/17
3040
GPM卫星 IMERG 降水产品的简单可视化
Python | 绘制影像地图(Basemap)
文中代码与数据请点击https://pan.bnu.edu.cn/v/link/view/0cd746194a1e42858583e84ac7fc4e40直接下载,不需要转存。
GIS与遥感开发平台
2022/04/29
7.3K0
Python | 绘制影像地图(Basemap)
相关推荐
气象绘图cmap、cbar超详细版(附示例)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档