簡體   English   中英

如何創建具有可變數量子圖的 plot?

[英]How do I create a plot with a variable amount of subplots?

我目前有一個包含所有 ML 模型和預測的數據集,但是如果我想創建一個新的 model,我將不得不在 go 中添加、添加和/或更改這么多代碼行。

我試圖遍歷我的數據集的長度並創建軸對象,但它有點失敗。 老實說,我不確定 go 的其他方法,但我們將不勝感激。

有沒有辦法可以創建 function 或循環來讓我的生活更輕松?

fig, ax = plt.subplots(nrows=1, ncols=15, sharex=True, sharey=True, figsize=(15,15))
ax0 = plt.subplot2grid((1,15), (0,0), rowspan=1, colspan = 1)
ax1 = plt.subplot2grid((1,15), (0,1), rowspan=1, colspan = 1)
ax2 = plt.subplot2grid((1,15), (0,2), rowspan=1, colspan = 1)
ax3 = plt.subplot2grid((1,15), (0,3), rowspan=1, colspan = 1)
ax4 = plt.subplot2grid((1,15), (0,4), rowspan=1, colspan = 1)
ax5 = plt.subplot2grid((1,15), (0,5), rowspan=1, colspan = 1)
ax6 = plt.subplot2grid((1,15), (0,6), rowspan=1, colspan = 1)
ax7 = plt.subplot2grid((1,15), (0,7), rowspan=1, colspan = 1)
ax8 = plt.subplot2grid((1,15), (0,8), rowspan=1, colspan = 1)
ax9 = plt.subplot2grid((1,15), (0,9), rowspan=1, colspan = 1)
ax10 = plt.subplot2grid((1,15), (0,10), rowspan=1, colspan = 1)
ax11 = plt.subplot2grid((1,15), (0,11), rowspan=1, colspan = 1)
ax12 = plt.subplot2grid((1,15), (0,12), rowspan=1, colspan = 1)
ax13 = plt.subplot2grid((1,15), (0,13), rowspan=1, colspan = 1)
ax14 = plt.subplot2grid((1,15), (0,14), rowspan=1, colspan = 1)


# As our curve scales will be detached from the top of the track,
# this code adds the top border back in without dealing with splines
axt0 = ax0.twiny()
axt0.xaxis.set_visible(False)

axt1 = ax1.twiny()
axt1.xaxis.set_visible(False)

axt2 = ax2.twiny()
axt2.xaxis.set_visible(False)

axt3 = ax3.twiny()
axt3.xaxis.set_visible(False)

axt4 = ax4.twiny()
axt4.xaxis.set_visible(False)

axt5 = ax5.twiny()
axt5.xaxis.set_visible(False)

axt6 = ax6.twiny()
axt6.xaxis.set_visible(False)

axt7 = ax7.twiny()
axt7.xaxis.set_visible(False)

axt8 = ax8.twiny()
axt8.xaxis.set_visible(False)

axt9 = ax9.twiny()
axt9.xaxis.set_visible(False)

axt10 = ax10.twiny()
axt10.xaxis.set_visible(False)

axt11 = ax11.twiny()
axt11.xaxis.set_visible(False)

axt12 = ax12.twiny()
axt12.xaxis.set_visible(False)

axt13 = ax13.twiny()
axt13.xaxis.set_visible(False)

axt14 = ax14.twiny()
axt14.xaxis.set_visible(False)

#Set up the plot axes
ax0.grid(which='major', color='lightgrey', linestyle='-')
ax0.set_xlim(-3, 3)
ax0.set_xlabel("X")
ax0.spines["top"].set_position(("axes", 1.02))
ax0.plot('actual',’D’,data = preds, color = 'green')
ax0.invert_yaxis()

plt.setp(ax1.get_yticklabels(), visible = False)
ax1.grid(which='major', color='lightgrey', linestyle='-')
ax1.set_xlim(-3, 3)
ax1.set_xlabel("X_rfr")
ax1.spines["top"].set_position(("axes", 1.02))
ax1.plot('rfr', ‘D’, data = preds)
ax1.invert_yaxis()

plt.setp(ax2.get_yticklabels(), visible = False)
ax2.grid(which='major', color='lightgrey', linestyle='-')
ax2.set_xlim(-3, 3)
ax2.set_xlabel("X_gbr")
ax2.spines["top"].set_position(("axes", 1.02))
ax2.plot('gbr', ‘D’, data = preds)
ax2.invert_yaxis()

plt.setp(ax3.get_yticklabels(), visible = False)
ax3.grid(which='major', color='lightgrey', linestyle='-')
ax3.set_xlim(-3, 3)
ax3.set_xlabel("X_knr")
ax3.spines["top"].set_position(("axes", 1.02))
ax3.plot('knr', ‘D’, data = preds)
ax3.invert_yaxis()

plt.setp(ax4.get_yticklabels(), visible = False)
ax4.grid(which='major', color='lightgrey', linestyle='-')
ax4.set_xlim(-3, 3)
ax4.set_xlabel("X_lir")
ax4.spines["top"].set_position(("axes", 1.02))
ax4.plot('lir', ‘D’, data = preds)
ax4.invert_yaxis()

plt.setp(ax5.get_yticklabels(), visible = False)
ax5.grid(which='major', color='lightgrey', linestyle='-')
ax5.set_xlim(-3, 3)
ax5.set_xlabel("X_rlr")
ax5.spines["top"].set_position(("axes", 1.02))
ax5.plot('rlr', ‘D’, data = preds)
ax5.invert_yaxis()

plt.setp(ax6.get_yticklabels(), visible = False)
ax6.grid(which='major', color='lightgrey', linestyle='-')
ax6.set_xlim(-3, 3)
ax6.set_xlabel("X_llr")
ax6.spines["top"].set_position(("axes", 1.02))
ax6.plot('llr', ‘D’, data = preds)
ax6.invert_yaxis()

plt.setp(ax7.get_yticklabels(), visible = False)
ax7.grid(which='major', color='lightgrey', linestyle='-')
ax7.set_xlim(-3, 3)
ax7.set_xlabel("X_enr")
ax7.spines["top"].set_position(("axes", 1.02))
ax7.plot('enr', ‘D’, data = preds)
ax7.invert_yaxis()

plt.setp(ax8.get_yticklabels(), visible = False)
ax8.grid(which='major', color='lightgrey', linestyle='-')
ax8.set_xlim(-3, 3)
ax8.set_xlabel("X_svr")
ax8.spines["top"].set_position(("axes", 1.02))
ax8.plot('svr', ‘D’, data = preds)
ax8.invert_yaxis()

plt.setp(ax9.get_yticklabels(), visible = False)
ax9.grid(which='major', color='lightgrey', linestyle='-')
ax9.set_xlim(-3, 3)
ax9.set_xlabel("X_krr")
ax9.spines["top"].set_position(("axes", 1.02))
ax9.plot('krr', ‘D’, data = preds)
ax9.invert_yaxis()

plt.setp(ax10.get_yticklabels(), visible = False)
ax10.grid(which='major', color='lightgrey', linestyle='-')
ax10.set_xlim(-3, 3)
ax10.set_xlabel("X_brr")
ax10.spines["top"].set_position(("axes", 1.02))
ax10.plot('brr', ‘D’, data = preds)
ax10.invert_yaxis()

plt.setp(ax11.get_yticklabels(), visible = False)
ax11.grid(which='major', color='lightgrey', linestyle='-')
ax11.set_xlim(-3, 3)
ax11.set_xlabel("X_par")
ax11.spines["top"].set_position(("axes", 1.02))
ax11.plot('par', ‘D’, data = preds)
ax11.invert_yaxis()

plt.setp(ax12.get_yticklabels(), visible = False)
ax12.grid(which='major', color='lightgrey', linestyle='-')
ax12.set_xlim(-3, 3)
ax12.set_xlabel("X_gpr")
ax12.spines["top"].set_position(("axes", 1.02))
ax12.plot('gpr', ‘D’, data = preds)
ax12.invert_yaxis()

plt.setp(ax13.get_yticklabels(), visible = False)
ax13.grid(which='major', color='lightgrey', linestyle='-')
ax13.set_xlim(-3, 3)
ax13.set_xlabel("X_sgd")
ax13.spines["top"].set_position(("axes", 1.02))
ax13.plot('sgd', ‘D’, data = preds)
ax13.invert_yaxis()

plt.setp(ax14.get_yticklabels(), visible = False)
ax14.grid(which='major', color='lightgrey', linestyle='-')
ax14.set_xlim(-3, 3)
ax14.set_xlabel("X_mlp")
ax14.spines["top"].set_position(("axes", 1.02))
ax14.plot('mlp', ‘D’, data = preds)
ax14.invert_yaxis()

ax0.xaxis.set_ticks_position("top")
ax0.xaxis.set_label_position("top")
ax1.xaxis.set_ticks_position("top")
ax1.xaxis.set_label_position("top")
ax2.xaxis.set_ticks_position("top")
ax2.xaxis.set_label_position("top")
ax3.xaxis.set_ticks_position("top")
ax3.xaxis.set_label_position("top")
ax4.xaxis.set_ticks_position("top")
ax4.xaxis.set_label_position("top")
ax5.xaxis.set_ticks_position("top")
ax5.xaxis.set_label_position("top")
ax6.xaxis.set_ticks_position("top")
ax6.xaxis.set_label_position("top")
ax7.xaxis.set_ticks_position("top")
ax7.xaxis.set_label_position("top")
ax8.xaxis.set_ticks_position("top")
ax8.xaxis.set_label_position("top")
ax9.xaxis.set_ticks_position("top")
ax9.xaxis.set_label_position("top")
ax10.xaxis.set_ticks_position("top")
ax10.xaxis.set_label_position("top")
ax11.xaxis.set_ticks_position("top")
ax11.xaxis.set_label_position("top")
ax12.xaxis.set_ticks_position("top")
ax12.xaxis.set_label_position("top")
ax13.xaxis.set_ticks_position("top")
ax13.xaxis.set_label_position("top")
ax14.xaxis.set_ticks_position("top")
ax14.xaxis.set_label_position("top")

你可以試試這段代碼

fig, axs = plt.subplots(nrows=1, ncols=15, sharex=True, sharey=True, figsize=(15,15))
fig.subplots_adjust(hspace = .5, wspace=.001)

axs = axs.ravel()

for i in range(15):

    axs[i].contourf(np.random.rand(10,10),5,cmap=plt.cm.Oranges)
    axs[i] = axs[i].twiny()
    axs[i].xaxis.set_visible(False)
    axs[i].set_title(str(250+i))

此外,如果您想一直更改 y 軸值,您可以使用 zip function 或創建字典來使用它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM