date high low close Central Bottom Top_Central Resistance_1 Support_1 Central_SMA Bottom_Central_SMA Top_Central_SMA
1 2010-01-05 142.45 136.00 141.85 140.100000 139.225 140.975000 NaN NaN NaN NaN NaN
2 2010-01-06 142.70 140.40 141.00 141.366667 141.550 141.183333 143.266667 138.891667 140.733333 140.3875 141.079167
3 2010-01-07 142.65 140.05 141.60 141.433333 141.350 141.516667 142.575000 140.125000 141.400000 141.4500 141.350000
4 2010-01-08 142.40 139.85 141.90 141.383333 141.125 141.641667 142.866667 140.291667 141.408333 141.2375 141.579167
5 2010-01-11 146.00 141.95 145.35 144.433333 143.975 144.891667 144.916667 141.616667 142.908333 142.5500 143.266667
在我的代码中,上面的数据框是数据透视表。
import matplotlib.dates as mdates
from matplotlib.dates import date2num
import matplotlib.pyplot as plt
Graph=pivot.copy()# Make a copy of pivot
try:
Graph.reset_index(inplace=True)
Graph['date'] = Graph['date'].apply(date2num)
except:
pass
fig= plt.figure()
ax1= fig.add_subplot(111)
ax2= fig.add_subplot(111)
ax3= fig.add_subplot(111)
ax1.xaxis_date()
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
ax2.plot(Graph.date, Graph['Resistance_1'], label='R1')
ax3.plot(Graph.date, Graph['Support_1'], label='S1')
plt.show()
运行上面的代码时,出现以下错误。
/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:3:MatplotlibDeprecationWarning:
使用与先前轴相同的参数添加轴当前会重用较早的实例。在将来的版本中,将始终创建并返回一个新实例。同时,通过向每个轴实例传递唯一的标签,可以抑制此警告,并确保将来的行为。
/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:4:MatplotlibDeprecationWarning:
使用与先前轴相同的参数添加轴当前会重用较早的实例。在将来的版本中,将始终创建并返回一个新实例。同时,通过向每个轴实例传递唯一的标签,可以抑制此警告,并确保将来的行为。
如何解决此问题?
答案 0 :(得分:1)
使用与当前先前轴相同的参数添加轴 重用以前的实例。
相同的参数在这里的意思是“ 111”:
ax2= fig.add_subplot(111)
ax3= fig.add_subplot(111)
该行为在警告消息中指定:它不添加新图形,而是重用旧图形。因此,即使您可能想指定3,您也只有1个数字。我假设您需要查找子图的语法,并将其误认为不是。一种正确的使用方式是:
ax1= fig.add_subplot(131)
ax2= fig.add_subplot(132)
ax2.plot(a,b)
ax3= fig.add_subplot(133)
ax3.plot(b,a)
如果您想要3行图像,也可以使用31倍。