【发布时间】:2023-03-19 14:32:01
【问题描述】:
我想在循环中创建子图,但结果与我想象的不完全一样。我想在一个大图中散点图。数据来源于两个数据框DF 和dfr 的匹配列。 DF 和 dfr 具有相同数量的行列和索引。应排除两个数据框的前两列。
这是我的方法,但我得到i 图,每个图都有一个子图。我错过了什么?
measurements = 9
for i in range(2,measurements+1):
try:
x = DF.iloc[1:,i]
y = dfr.iloc[1:,i]
inds = ~np.logical_or(np.isnan(x), np.isnan(y))
x = x[inds]
y = y[inds]
xy = np.vstack([x,y])
z = gaussian_kde(xy)(xy)
b, m = polyfit(x, y, 1)
fig, ax = plt.subplots(measurements+1,facecolor='w', edgecolor='k')
ax[i].scatter(x, y, c=z, s=50, cmap='jet', edgecolor='', label=None, picker=True, zorder= 2)
ax[i].plot(x, b + m * x, '-')
except KeyError:
continue
plt.show()
目前我得到了几个地块,但我想要一个带有多个子地块的地块。
【问题讨论】:
-
more
fig, ax = plt.subplots(...)在循环外,否则为每次迭代创建一个新图形 -
这解决了它!
标签: python for-loop matplotlib plot