模板程序有效,但缺点是有很多行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()
答案 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])