Как сделать график, подобный приведенному ниже, с помощью функции df.plot? - PullRequest
0 голосов
/ 12 марта 2020

У меня есть данные за 2007 год с населением в миллионах, ВВП в миллиардах и столбцом индекса страны

    continent   year    lifeExpectancy  population  gdpPerCapita    GDP Billions
country                      
China   Asia    2007    72.961  1318.6831   4959.11485  6539.50093
India   Asia    2007    64.698  1110.39633  2452.21041  2722.92544
United States   Americas    2007    78.242  301.139947  42951.6531  12934.4585
Indonesia   Asia    2007    70.65   223.547 3540.65156  791.502035
Brazil  Americas    2007    72.39   190.010647  9065.80083  1722.59868
Pakistan    Asia    2007    65.483  169.270617  2605.94758  441.110355
Bangladesh  Asia    2007    64.062  150.448339  1391.25379  209.311822
Nigeria Africa  2007    46.859  135.031164  2013.97731  271.9497
Japan   Asia    2007    82.603  127.467972  31656.0681  4035.1348
Mexico  Americas    2007    76.195  108.700891  11977.575   1301.97307

Я пытаюсь построить гистограмму следующим образом:

enter image description here

Это было построено с использованием matplotlib (код ниже), и я хочу получить это с помощью метода df.plot.

Код для построения с matplotlib:

x = data.plot(y=[3],kind = "bar")
data.plot(y = [3,5],kind = "bar",secondary_y = True,ax = ax,style='g:', figsize = (24, 6))
plt.show()

1 Ответ

1 голос
/ 12 марта 2020

Вы можете использовать df.plot() со столбцами оси y, которые вам нужны на вашем графике, и аргумент secondary_y в качестве второго столбца

data[['population','gdpPerCapita']].plot(kind='bar', secondary_y='gdpPerCapita')

Если вы хотите установить метки y для каждой стороны, тогда Вы должны получить все оси графика (в данном случае 2 оси Y) и установить метки соответственно.

ax1, ax2 = plt.gcf().get_axes()
ax1.set_ylabel('Population')
ax2.set_ylabel('GDP')

Вывод: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...