加入无花果对象的名单在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