如何在Matplotlib中使线图的线条颜色随数据索引变化?

如何在Matplotlib中使线图的线条颜色随数据索引变化?

为了使Matplotlib中线图的线条颜色随数据索引变化,我们可以按照以下步骤操作:

步骤

  • 设置图形大小并调整子图之间和周围的填充。

  • 使用NumPy创建x和y数据点。

  • 获取较小的极限值dydx。

  • 使用numpy获取points和segments数据点。

  • 创建图和子图。

  • 创建一个类,当调用时将数据线性标准化到某个范围内。

  • 从NumPy数组A设置图像数组。

  • 设置集合的线宽(s)。

  • 为轴1设置colorbar。

  • 从包含颜色(例如r,g和b)列表生成Colormap对象。

  • 重复步骤6、7、8、9和10。

  • 设置X和Y轴的限制。

  • 要显示图形,使用show()方法。

示例

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
from matplotlib.colors import ListedColormap, BoundaryNorm

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.linspace(0, 3 * np.pi, 500)
y = np.sin(x)

dydx = np.cos(0.5 * (x[:-1] + x[1:]))
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, cmap='viridis', norm=norm)
lc.set_array(dydx)
lc.set_linewidth(2)

line = axs[0].add_collection(lc)
fig.colorbar(line, ax=axs[0])
cmap = ListedColormap(['r', 'g', 'b'])
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])

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

plt.show()

输出

它将生成以下输出 –

如何在Matplotlib中使线图的线条颜色随数据索引变化?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程