Pyplot 从一维数组创建强度图

Fle*_*gjp 1 python matplotlib scipy

我目前有一个一维数组,表示强度值,该值的索引为其 x 位置。

intensity_values = [0.10, 0.32, ... , 0.12, 0.23]
Run Code Online (Sandbox Code Playgroud)

我想在图的底部创建一个带有强度图的子图,直观地显示数据。

渐变条

我见过需要 3 维数组才能完成数据图的示例。我怎样才能达到这个结果?

unu*_*tbu 5

如果将其重塑intensity_values为 2D NumPy 数组,则可以使用 imshow:

ax.imshow(np.atleast_2d(intensity_values))
Run Code Online (Sandbox Code Playgroud)
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import gridspec
x = np.linspace(0, np.pi, 100)
intensity_values = np.sin(x)

# /sf/answers/2511696771/
fig, (ax0, ax1) = plt.subplots(
    nrows=2, gridspec_kw={'height_ratios':[7, 1],}, sharex=True)
ax0.plot(x, intensity_values)
ax1.imshow(np.atleast_2d(intensity_values), cmap=plt.get_cmap('gray'),
              extent=(0, np.pi, 0, 1))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述