坐标轴可以不止一边噢,除了左边还可以有右边!
plt.subplots()是一个函数,返回一个包含figure和axes对象的元组。
因此,使用fig,ax = plt.subplots()将元组分解为fig和ax两个变量。
plt.subplots(
nrows=1,
ncols=1,
sharex=False,
sharey=False,
squeeze=True,
subplot_kw=None,
gridspec_kw=None,
**fig_kw)
其中常用参数为:
nrows,ncols:代表子图的行列数。
sharex, sharey:
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots.html
具体使用方式可以参考
下面两种表达方式具有同样的效果:
fig = plt.figure()
ax1 = fig.add_subplot(111)
fig,ax1 = plt.subplots()
用于将ax1的x轴镜像对称。
fig,ax1 = plt.subplots()
# 画出ax1的x轴对称镜像
ax2 = ax1.twinx()
import numpy as np
import matplotlib.pyplot as plt
x = [1,2,3,4,5,6,7]
y1 = [1,2,3,4,5,6,7]
y2 = [-1,-2,-3,-4,-5,-6,-7]
fig,ax1 = plt.subplots()
# 画出ax1的x轴对称镜像
ax2 = ax1.twinx()
ax1.plot(x,y1,'g--')
ax2.plot(x,y2,'b--')
ax1.set_ylabel("y1",color = 'g')
ax2.set_ylabel("y2",color = 'b')
# 标记1
x0 = x[1]
y0 = y1[1]
ax1.scatter(x0,y0,s = 50,color = 'green')
ax1.annotate('y1',xy=(x0,y0),xycoords='data',xytext = (+30,-30),textcoords = 'offset points',
fontsize = 16,arrowprops=dict(arrowstyle = '->',connectionstyle = 'arc3,rad=0.2'))
# 标记2
x0 = x[1]
y0 = y2[1]
ax2.scatter(x0,y0,s = 50,color = 'green')
ax2.annotate('y2',xy=(x0,y0),xycoords='data',xytext = (+30,-30),textcoords = 'offset points',
fontsize = 16,arrowprops=dict(arrowstyle = '->',connectionstyle = 'arc3,rad=0.5'))
plt.show()