在Matlab的Python的matplotlib中是否有明确的等效命令hold on?我试图在同一轴上绘制所有图形.一些图表是一个内部产生for循环,而这些是从单独绘制su和sl:
import numpy as np
import matplotlib.pyplot as plt
for i in np.arange(1,5):
z = 68 + 4 * np.random.randn(50)
zm = np.cumsum(z) / range(1,len(z)+1)
plt.plot(zm)
plt.axis([0,50,60,80])
plt.show()
n = np.arange(1,51)
su = 68 + 4 / np.sqrt(n)
sl = 68 - 4 / np.sqrt(n)
plt.plot(n,su,n,sl)
plt.axis([0,50,60,80])
plt.show()
Run Code Online (Sandbox Code Playgroud) 我试图在同一个窗口中绘制两种类型的图(即线图和散点图)。绘制在折线图中的数据(第一个图)是代表气候指数 (Y) 与十进制年份 (X) 的浮动数值。我想成为“分散”的第二个图大致相同,但浮动数值代表河流流量 (Y) 与十进制年份 (X)。我试图通过使用散点图的双 x 轴和第二个寄生 y 轴来完成此操作:
import mpl_toolkits
from mpl_toolkits.axes_grid1 import host_subplot
import matplotlib.pyplot as plt
host = host_subplot(111)
par = host.twinx()
host.set_xlim(1880, 2020)
host.set_ylim(-5, 10)
host.set_xlabel("Time")
host.set_ylabel("PDSI Region 01")
par.set_ylabel("Minimum 10% Annual 7-day Non-exceedance Flow (cfs)")
x1 = timearray
y1 = pdsiarray01
x2 = upAmm_yr
y2 = upAmm_min
p1, = host.plot(x1, y1, label="PDSI01")
p2, = par.scatter(x2, y2, label="Annual Lowflow Upper Amm")
par.set_ylim(30, 60)
host.legend()
host.axis["left"].label.set_color(p1.get_color())
par.axis["right"].label.set_color(p2.get_color())
plt.draw()
plt.show()
Run Code Online (Sandbox Code Playgroud)
我得到错误代码:
TypeError: cannot perform reduce …Run Code Online (Sandbox Code Playgroud)