gpt4 book ai didi

python - 如何使用颜色栏中的 z 值生成线性颜色图 (cplot)

转载 作者:行者123 更新时间:2023-12-01 06:53:26 24 4
gpt4 key购买 nike

在 MATLAB™ 中,可以使用 cplot.m它可以生成彩色图,基本上看起来像以第三轴(z 轴)值作为颜色条的二维图。是否有任何工具/绘图技术可以用来在 Python 或 IDL 编程语言中生成类似的绘图?上一个关于堆栈溢出的问题处理链接中给出的不同问题。

cplot image (Linear colored line plot

最佳答案

Matplotlib 没有直接等效的 cplot,但您可以使用 LineCollection

有了这种理解,您就必须修改通常的样板,添加特定的导入

In [1]: import numpy as np 
...: import matplotlib.pyplot as plt
...: from matplotlib.collections import LineCollection

现在,生成一些数据(c 是与 (x, y) 点关联的第三个值)

In [2]: x = np.linspace(0, 6.3, 64) 
...: y = np.sin(x) ; c = np.cos(x)

LineCollection 需要一个 3D 数组,即段列表,每个段一个点列表,每个点一个坐标列表,我们使用此 recipe 构建它

In [3]: points = np.array([x, y]).T.reshape(-1,1,2) 
...: segments = np.concatenate([points[:-1], points[1:]], axis=1)

现在我们实例化 LineCollection,指定我们想要的颜色图和线宽,在我们告诉实例它的 array (映射到的内容)之后立即颜色)是数组c

In [4]: lc = LineCollection(segments, cmap='plasma', linewidth=3) 
...: lc.set_array(c)

最终我们以自己的方式绘制lc,调用autoscale,因为它是需要的(尽量不要调用它......)并添加一个颜色条。

In [5]: fig, ax = plt.subplots()                                                          
...: ax.add_collection(lc)
...: ax.autoscale()
...: plt.colorbar(lc);

enter image description here

我知道,这有点笨拙,但它确实有效。

关于python - 如何使用颜色栏中的 z 值生成线性颜色图 (cplot),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58903874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com