Как построить гистограмму этого типа, используя matplotlib из кадра данных - PullRequest
0 голосов
/ 13 июня 2018

Я думаю построить гистограмму «дождь против дождя» в часах. У меня есть следующий список данных с часами от 0 до 23

Я пробовал составлять графики, но я не могу понять из этого, что сколько было дождей в этот час и скольконе было

Hour    Raining     Not Raining

0   0   3559751.0   7248389.0

1   1   1606880.0   3361780.0


2   2   145719.0    282413.0


3   3   26804.0     54543.0


4   4   766333.0    1672134.0


5   5   379272.0    800500.0


6   6   59030.0     123764.0


7   7   140758.0    242930.0

8   8   1950224.0   3544500.0

9   9   3806660.0   7234291.0

10  10  477959.0    837528.0

11  11  235289.0    410994.0

12  12  7787028.0   15026342.0


13  13  3145361.0   6265131.0

14  14  388437.0    776277.0

15  15  149688.0    297624.0

16  16  5735102.0   11601840.0

17  17  4250723.0   8442271.0

18  18  564774.0    1123973.0

19  19  290350.0    544482.0

20  20  8302496.0   16203000.0

21  21  4452747.0   8668253.0

22  22  418217.0    784093.0

23  23  115005.0    230668.0

Теперь я хочу построить гистограмму так, чтобы у меня было четкое понимание того, что за эти часы от 1 до 2 сколько значений шло, а сколько - нет?

это часы, а размер корзины должен быть часом, верно?

1 Ответ

0 голосов
/ 13 июня 2018

Я полагаю, что вы ищете столбчатую диаграмму с накоплением.

Приведенный ниже код поможет вам.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame([[0, 3559751.0, 7248389.0],[1, 1606880.0, 3361780.0],[2, 145719.0, 282413.0],[3,26804.0, 54543.0],[4,766333.0 ,1672134.0],[5,379272.0 ,800500.0],[6,59030.0, 123764.0],[7,140758.0, 242930.0],[8,1950224.0, 3544500.0],[9,3806660.0, 7234291.0],[10,477959.0, 837528.0],[11,235289.0 ,410994.0],[12,7787028.0, 15026342.0],[13, 3145361.0, 6265131.0],[14, 388437.0, 776277.0],[15, 149688.0, 297624.0],[16, 5735102.0 ,11601840.0],[17,4250723.0, 8442271.0],[18,564774.0, 1123973.0],[19,290350.0, 544482.0],[20,8302496.0, 16203000.0],[21,4452747.0, 8668253.0],[22,418217.0, 784093.0],[23, 115005.0, 230668.0]], columns=["hour", "T", "F"])

df[['T', 'F']].plot(kind='bar', stacked='True')

Надеюсь, это поможет!


Это больше похоже на то, что вы ищете?

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame([[0, 3559751.0, 7248389.0],[1, 1606880.0, 3361780.0],[2, 145719.0, 282413.0],[3,26804.0, 54543.0],[4,766333.0 ,1672134.0],[5,379272.0 ,800500.0],[6,59030.0, 123764.0],[7,140758.0, 242930.0],[8,1950224.0, 3544500.0],[9,3806660.0, 7234291.0],[10,477959.0, 837528.0],[11,235289.0 ,410994.0],[12,7787028.0, 15026342.0],[13, 3145361.0, 6265131.0],[14, 388437.0, 776277.0],[15, 149688.0, 297624.0],[16, 5735102.0 ,11601840.0],[17,4250723.0, 8442271.0],[18,564774.0, 1123973.0],[19,290350.0, 544482.0],[20,8302496.0, 16203000.0],[21,4452747.0, 8668253.0],[22,418217.0, 784093.0],[23, 115005.0, 230668.0]], columns=["hour", "T", "F"])

ax = df.plot(x="hour", y="T", kind="bar", color="blue", alpha=0.3)
df.plot(x="hour", y="F", kind="bar", ax=ax, color="green", alpha=0.3)
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...