def dual_y_plot(title, X1, Y1, X2, Y2):
'''
:param title: tile , string
:param X1: axis x1, list
:param Y1: axis y1, list
:param X2: axis x2, list
:param Y2: axis y2, list
:return: save the fig to 'title.png'
'''
fig, ax1 = plt.subplots(figsize=(12, 9))
plt.title(title, fontsize=20)
plt.grid(axis='y', color='grey', linestyle='--', lw=0.5, alpha=0.5)
plt.tick_params(axis='both', labelsize=14)
plot1 = ax1.plot(X1, Y1, 'b', label='Test Acc')
ax1.set_ylabel('Test Acc', fontsize=18)
ax1.set_ylim(0, 100)
for tl in ax1.get_yticklabels():
tl.set_color('b')
ax2 = ax1.twinx()
plot2 = ax2.plot(X2, Y2, 'g', label='Train Loss')
ax2.set_ylabel('Train Loss', fontsize=18)
ax2.set_ylim(0, 0.5)
ax2.tick_params(axis='y', labelsize=14)
for tl in ax2.get_yticklabels():
tl.set_color('g')
#ax2.set_xlim(1966, 2014.15)
lines = plot1 + plot2
ax1.legend(lines, [l.get_label() for l in lines])
ax1.set_yticks(np.linspace(ax1.get_ybound()[0], ax1.get_ybound()[1], 9))
ax2.set_yticks(np.linspace(ax2.get_ybound()[0], ax2.get_ybound()[1], 9))
for ax in [ax1, ax2]:
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
fig.text(0.1, 0.02,
'The original content: http://savvastjortjoglou.com/nba-draft-part02-visualizing.html\nPorter: MingYan',
fontsize=10)
plt.savefig(title + ".png")
画出来这样子: