TypeError: bar () получила несколько значений для аргумента 'x' - PullRequest
0 голосов
/ 30 апреля 2020

Я хочу создать барплот, и я использую это:

import plotly.express as px

fig = plt.bar(df_last_plot, y='Deaths', x='Country')
fig.update_layout(title='No.of Deaths for Top 10 Countries',
                   xaxis_title='Country',
                   yaxis_title='No.of Deaths Cases')
fig.show()

Но возникла ошибка

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-158-7f5e5e905f6e> in <module>
      1 import plotly.express as px
      2 
----> 3 fig = plt.bar(df_last_plot, y='Deaths', x='Country')
      4 fig.update_layout(title='No.of Deaths for Top 10 Countries',
      5                    xaxis_title='Country',

TypeError: bar() got multiple values for argument 'x'

Мой фрейм данных выглядит так:

df_last :

+-----------------+------------+
| Country         |  Deaths    |
+-----------------+------------+
|  Belgium        |  35312     |
|  France         |  167548    |
|  Germany        |  34001     |
|  Iran           |  88912     |
|  Italy          |  358872    | 
|  Mainland China |  192276    | 
|  Netherlands    |  35618     | 
|  Spain          |  253417    | 
|  UK             |  106910    | 
|  US             |  219105    |  
+-----------------+------------+

Как преодолеть эту ошибку?

1 Ответ

1 голос
/ 30 апреля 2020

На основании документов функция имеет сигнатуру

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, \*, align='center', data=None,  \*\*kwargs)

Как видите, x является первым аргументом, поэтому вызов функции как

fig = plt.bar(df_last_plot, y='Deaths', x='Country')

вы передаете df_last_plot как x, а затем снова как 'Country'. Я предполагаю, что ваше намерение было ближе к следующему

fig = plt.bar(df_last_plot['Country'], df_last_plot['Deaths'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...