Python 3.x twinx方法如何在一个图形中绘制4幅图片
我想画两个y轴和一个x轴,在一个图形窗口中只画一张图片,我知道怎么做,但如何更改此代码在一个图形窗口中画4张图片Python 3.x twinx方法如何在一个图形中绘制4幅图片,python-3.x,pandas,numpy,matplotlib,Python 3.x,Pandas,Numpy,Matplotlib,我想画两个y轴和一个x轴,在一个图形窗口中只画一张图片,我知道怎么做,但如何更改此代码在一个图形窗口中画4张图片 ax1 = axes() ax2 = ax1.twinx() x = np.arange(100) y1 = np.random.rand(100) y2 = np.random.rand(100) ax1.plot(x,y1,'-r') ax1.set_ylim(-1,1) ax2.fill_between(x,0,y2,color='b',alpha=0.5) ax2.set
ax1 = axes()
ax2 = ax1.twinx()
x = np.arange(100)
y1 = np.random.rand(100)
y2 = np.random.rand(100)
ax1.plot(x,y1,'-r')
ax1.set_ylim(-1,1)
ax2.fill_between(x,0,y2,color='b',alpha=0.5)
ax2.set_ylim(0,2)
ax1.set_ylabel('Red')
ax2.set_ylabel('Blue')
这里有一个可行的方法。我只缠绕了一根轴,但实际上所有的轴都可以被类似地对待
import matplotlib.pyplot as plt
import numpy as np
fig, axarr = plt.subplots(nrows=2, ncols=2)
axTx = axarr[0, 0].twinx()
x = np.logspace(-1, 1, 100)
axarr[0, 0].plot(x, x, linewidth=2, color='xkcd:azure')
axTx.plot(x, 1 / x, linewidth=2, color='xkcd:avocado')
axarr[0, 0].tick_params(axis='y', labelcolor='xkcd:azure')
axTx.tick_params(axis='y', labelcolor='xkcd:avocado')
fig.tight_layout()
这里有一个可行的方法。我只缠绕了一根轴,但实际上所有的轴都可以被类似地对待
import matplotlib.pyplot as plt
import numpy as np
fig, axarr = plt.subplots(nrows=2, ncols=2)
axTx = axarr[0, 0].twinx()
x = np.logspace(-1, 1, 100)
axarr[0, 0].plot(x, x, linewidth=2, color='xkcd:azure')
axTx.plot(x, 1 / x, linewidth=2, color='xkcd:avocado')
axarr[0, 0].tick_params(axis='y', labelcolor='xkcd:azure')
axTx.tick_params(axis='y', labelcolor='xkcd:avocado')
fig.tight_layout()
你在找吗?@Patol75我熟悉一个y轴的简单子图,这里我想用两个y轴来绘制子图,假设你这样称呼子图:
fig,(ax,bx,cx,dx)=plt。子图(nrows=2,ncols=2)
,你仍然可以用你在问题中描述的相同方式对每个轴进行孪生。这会是你想要的吗?@Patol75请你添加一个例子好吗?见下文。还有,为上面的错误感到抱歉,我总是犯这样的错误:即使子地块生成4个轴,但它们被打包到两个列表中,因为有多行和多列。你在找吗?@Patol75我熟悉带有一个y轴的简单子地块,这里我想用两个y轴绘制子地块,假设你这样调用子地块:fig,(ax、bx、cx、dx)=plt.子批次(nrows=2,ncols=2)
,您仍然可以按照您在问题中描述的方式对每个轴进行孪生。这是您想要的吗?@Patol75请您为这一点添加示例?请参见下文。此外,对于上面的错误,我总是这样做:即使子地块生成4个轴,但它们被打包到两个列表中,因为有多行和多列。