prices = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
columns=['a', 'b', 'c'])
我有我的prices
数据框,它目前有 3 列。但在其他时候,它可能有更多或更少的列。有没有办法使用某种twinx()
循环来创建具有(可能)无限数量的 y 轴的所有不同时间序列的折线图?
我尝试了下面的双循环,但我得到了typeError'd:bTypeError: 'AxesSubplot' object does not support item assignment
# for i in range(0,len(prices.columns)):
# for column in list(prices.columns):
# fig, ax[i] = plt.subplots()
# ax[i].set_xlabel(prices.index())
# ax[i].set_ylabel(column[i])
# ax[i].plot(prices.Date, prices[column])
# ax[i].tick_params(axis ='y')
#
# ax[i+1] = ax[i].twinx()
# ax[i+1].set_ylabel(column[i+1])
# ax[i+1].plot(prices.Date, column[i+1])
# ax[i+1].tick_params(axis ='y')
#
# fig.suptitle('matplotlib.pyplot.twinx() function \ Example\n\n', fontweight ="bold")
# plt.show()
# =============================================================================
我相信我明白为什么会出现错误 -ax
对象不允许分配i
变量。我希望有一些巧妙的方法来实现这一点。