Проблема с matplotlib после установки ggplot - PullRequest
0 голосов
/ 12 сентября 2018

Вчера я установил ggplot в свою среду анаконды. Когда я пытался использовать график matplotlib, который работал до того, как я установил ggplot, я получаю сообщение об ошибке ниже. Я также получаю ошибки от других встроенных кодов Jupyter Lab. Любая помощь будет оценена. Я новичок в визуализации данных. Если есть другой модуль печати, который я должен использовать, дайте мне знать.

plt.rcParams['figure.dpi'] = 200
plt.rcParams.update({'font.size': 5})

fig, ax1 = plt.subplots()
ax1.set_xlabel('Time')

ax1.set_ylabel('price', color='k')
ax1.plot(df['price'], color='#0072b5', label = 'price')
ax1.tick_params(axis='y', labelcolor='k')
#ax1.tick_params(axis='x',  labelrotation = 90) 

ax2 = ax1.twinx()  # instantiate a second axes that shares the same x-axis#

color = 'tab:cyan'
ax2.set_ylabel('gen', color='k')  # we already handled the x-label with ax1
ax2.plot(df['gen'], color='#e2e3e2', label = 'gen')
ax2.tick_params(axis='y', labelcolor='k')

#ax1.legend(loc=2)
#ax2.legend(loc=1)
fig.legend(loc=1, bbox_to_anchor=(1,1), bbox_transform=ax1.transAxes, prop={'size':5})


fig.tight_layout()  # otherwise the right y-label is slightly clipped
fig.suptitle('%s, %s %s' % (df, month_graph, year_graph) , fontsize=8)
fig.subplots_adjust(top=0.90)
plt.savefig("%s.png" % ('genPrice'))
plt.show()

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-032d973b53a3> in <module>()
     19 #ax1.legend(loc=2)
     20 #ax2.legend(loc=1)
---> 21 fig.legend(loc=1, bbox_to_anchor=(1,1), bbox_transform=ax1.transAxes, prop={'size':5})
     22 
     23 

TypeError: legend() missing 2 required positional arguments: 'handles' and 'labels'

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Подпись для matplotlib.figure.Figure.legend - в версии 2.0.2 для matplotlib

legend(handles, labels, *args, **kwargs)

, а в версии 2.1.2 или выше -

legend(*args, **kwargs)

Это означает, что вы понизили вашу версию matplotlib во время установки ggplot.Если вы хотите продолжить работу с этой более старой версией matplotlib, вам нужно будет предоставить маркеры и метки самостоятельно.Это может выглядеть как

h1, l1 = ax1.get_legend_handles_labels()
h2, l2 = ax2.get_legend_handles_labels()

fig.legend(h1+h2, l1+l2, loc=1, bbox_to_anchor=(1,1), 
           bbox_transform=ax1.transAxes, prop={'size':5})
0 голосов
/ 12 сентября 2018

В трассировке указано, что отсутствуют два «обязательных» аргумента, хотя, согласно документации , они на самом деле являются необязательными.Если вы столкнулись с этой проблемой с момента установки нового модуля, возможно, вы понизили версию matplotlib до предыдущей версии, где два аргумента были обязательными.Если это так, вы можете pip install matplotlib --upgrade с консоли.

...