首页 > 解决方案 > 在单个图中绘制多个图

问题描述

我正在尝试为 25 个样本绘制图表,我可以单独绘制它,但我无法将它们全部绘制在单个图中。我需要 8 个带有线条和不同颜色的样本图,8 个带有虚线和不同颜色的样本,其余的带有不同颜色的虚线。我想将所有这些都绘制在一张图中。

谢谢你。

import matplotlib.pyplot as plt
xs = []
ys = []
for i in range(25):
    subregion_average = np.mean(read_data['sub_region'][i], axis =(0,1))
    wavelength = read_data['wavelength'][i]
    xs.append(wavelength)
    ys.append(subregion_average)
for i in range(len(ys)):
    colours=['r','g','b','k','r','c','m','y']
    if i<=7:
      ax.plot(xs[i], ys[i], 'k--', linewidth = 2)
    else if 8<=i<=15:
      ax.plot(xs[i], ys[i], 'k:', linewidth = 2)
    else:
      ax.plot(xs[i], ys[i], 'k', linewidth = 2)
      
    ax.set_xlim(min(wavelength), max(wavelength))
    ax.tick_params(labelsize = 12)
    ax.set_title('Average Spectrum Calibrated sample', fontsize = 14, weight = 'bold')
    ax.set_ylabel('Reflectance', fontsize = 14)
    ax.set_xlabel('Wavelength in nm', fontsize = 14)
    ax.grid(True)

############

解决方案:我得到了解决方案,它可能不是高级别的,但这就是我想要的逻辑并将所有图表放在一个情节中。感谢您的投入。

colours =  ['r','g','b','k','r','c','m','y','r','g','b','k','r','c','m','y','r','g','b','k','r','c','m','y','g','k']
for i in range(len(ys)):
    if i<=7:
       plt.plot(xs[i], ys[i], 'k--', c=colours[i], linewidth = 2)
    elif 8<=i<=15:
       plt.plot(xs[i], ys[i], 'k:', c=colours[i], linewidth = 2)
    else:
       plt.plot(xs[i], ys[i], 'k', c=colours[i], linewidth = 2) 
    plt.xlim(min(wavelength), max(wavelength))
    plt.tick_params(labelsize = 12)
    plt.title('Average Spectrum Calibrated sample', fontsize = 14, weight = 'bold')
    plt.ylabel('Reflectance', fontsize = 14)
    plt.xlabel('Wavelength in nm', fontsize = 14)
    plt.grid(True)
    plt.gcf().set_size_inches(12,12)
    plt.savefig("Spectrum_Plots",dpi=500)

标签: pythonmatplotlib

解决方案


推荐阅读