我正试图在同一个窗口中绘制两种类型的绘图(即线图和散点图)。绘制在线图(第一张图)中的数据是表示气候指数(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()
我得到了错误代码:
TypeError: cannot perform reduce with flexible type
当我在以p2开头的行中将scatter替换为plot时,此代码可以正常工作,但会生成第二行plot。我希望它分散的最终原因是,在第二个数据集中要绘制的点要少很多,连接它们的线会分散注意力,而且“杂乱无章”(我都需要在时间上突出一个瞬间)。用条形图代替散点图也行。任何建议或帮助将不胜感激!
fI无法重现您的确切错误,但我认为您不需要在} 之外,您的代码对我有效。您需要将其更改为
p2
后面加逗号,因为scatter
只返回一个值。更改后,除了p2
是没有get_color
方法的^{p2.get_facecolor()
或其他内容。为什么不在这两种情况下都使用
plot
?相关问题 更多 >
编程相关推荐