如何在同一图中绘制多个图形时处理for循环?

时间:2018-03-26 15:55:05

标签: python python-3.x for-loop indexing

模板程序有效,但缺点是有很多行plot()。如何用一个有效的for循环替换6行plot()? 我该如何处理索引和标签?

    """
    # Import
    import matplotlib.pyplot as plt

    # Experimental data
    y_data = []
    y_data.append([21.2, 32.5, 42.1, 54.5, 23.5])
    y_data.append([17.2, 27.6, 35.7, 45.8, 27.1])
    y_data.append([25.7, 34.1, 34.7, 50.3, 31.3])
    y_data.append([11.2, 32.5, 45.1, 54.5, 23.5])
    y_data.append([27.4, 25.6, 45.7, 37.8, 25.1])
    y_data.append([23.4, 22.1, 54.7, 45.3, 19.3])

    # For x-axis
    x_data = range(1, len(y_data[1])+1)

    # %% Repetitve use of plot 
    # The following code plots the data but is repetitive 
    #
    fig1 = plt.figure()
    plt.plot(x_data, y_data[0], label='Expt on 31-01-18')
    plt.plot(x_data, y_data[1], label='Expt on 02-02-18')
    plt.plot(x_data, y_data[2], label='Expt on 05-02-18')
    plt.plot(x_data, y_data[3], label='Expt on 07-02-18')
    plt.plot(x_data, y_data[4], label='Expt on 10-02-18')
    plt.plot(x_data, y_data[5], label='Expt on 17-02-18')
    plt.legend()
    plt.xlabel('input')
    plt.ylabel('output')
    plt.grid()
    plt.show()

1 个答案:

答案 0 :(得分:0)

您可以按顺序计算的项目,您可以编码为循环序列。 不规则变化的项目,您将列入清单。 你已经掌握了这种数据技术;只需将其扩展到标签。

label_list = [
    'Expt on 31-01-18',
    'Expt on 02-02-18',
    'Expt on 05-02-18',
    'Expt on 07-02-18',
    'Expt on 10-02-18',
    'Expt on 17-02-18'
]
for plot_num in range(6):
    plt.plot(x_data, y_data[plot_num], label=label_list[plot_num])