0
我想創建一個通用的繪圖工具,例如: 從main函數我調用繪製一個(誤差曲線)的函數 這裏我想用這個函數來生成不同的地塊,然後將這些地塊合併成一個子地塊。例如:加入無花果對象的名單在Python matplotlib次要情節
從main函數我會打電話的繪圖功能3次不同的數據:
`my_figs=list()
my_figs.append(error_plot("Fig_1", [1,2,3], [[1,1,1],[2,2,2],[3,3,3]]))
my_figs.append(error_plot("Fig_2", [a,b,c], [[1,1,1],[2,2,2],[3,3,3]]))
my_figs.append(error_plot("Fig_3", [2a,2b,3c], [[1,1,1],[2,2,2],[3,3,3]]))
繪圖儀功能,是這樣的:
def error_plot(title, x_data, y_data, x_name, y_name):
xtick_size = list()
for i in range(0, len(x_data)):
xtick_size.append(i)
mean_y_data = list()
var_y_data = list()
for i in range(len(y_data)):
mean_y_data.append(np.nanmean(y_data[i]))
var_y_data.append(np.nanvar(y_data[i]))
plt.figure()
ax = plt.subplot(111)
ax.errorbar(xtick_size, mean_y_data)
ax.plot(xtick_size, mean_y_data)
plt.xticks(xtick_size, x_data)
ax.set_xlabel(x_name)
ax.set_ylabel(y_name)
ax.set_title(title)
ax.set_xticklabels(ax.xaxis.get_majorticklabels(), rotation=45)
ax.grid()
return plt
我的問題是我不知道如何從這個列表中創建一個子圖,是否有任何聰明的方法來做到這一點?目前我的嘗試是(不工作):
def create_sub_plot(title, plots):
plot_rows = len(plots)
i = 1
for fig in plots:
ax = plt.subplot(plot_rows, 1, i)
i+=1
plt.show()