加入无花果对象的名单在Python matplotlib次要情节

我想创建一个通用的绘图工具,例如: 从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()

回答:

matplotlib工作的方式是,你必须一个身影。在这个图里面你可以有任意数量的子图。

因此,您需要设计代码,使绘图函数将轴作为参数,并通过调整标签,刻度和绘图来操作此轴。

def error_plot(ax, title, x_data, y_data, x_name, y_name): 

ax.plot(x_data, y_data)

# do other stuff to the axes

fig, (ax1, ax2, ax3) = plt.subplots(ncols=3)

error_plot(ax1, "Fig_1", [1,2,3], [[1,1,1],[2,2,2],[3,3,3]]))

error_plot(ax2, "Fig_2", [a,b,c], [[1,1,1],[2,2,2],[3,3,3]]))

error_plot(ax3, "Fig_3", [2a,2b,3c], [[1,1,1],[2,2,2],[3,3,3]]))

以上是 加入无花果对象的名单在Python matplotlib次要情节 的全部内容, 来源链接: utcz.com/qa/264597.html

回到顶部