График плотности рассеяния в питоне по данным в CSV - PullRequest
0 голосов
/ 16 апреля 2019

У меня очень большой набор данных из 18000 игроков.Например, у каждого игрока есть функция Общий и Финишный, и я хочу построить график плотности разброса, потому что с «нормальным» графиком я не могу определить, где больше игроков, а где меньше игроков.

Обычный код точечной диаграммы выглядит следующим образом ...

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

DATA_LOCATION = "main_players.csv"
FIRST_ATTRIBUTE = "Finishing"
SECOND_ATTRIBUTE = "Overall"

datas = pd.read_csv(DATA_LOCATION)
x = datas[[FIRST_ATTRIBUTE]]
y = datas[[SECOND_ATTRIBUTE]]
plt.scatter(x, y, color='r')
plt.xlabel('Finishing')
plt.ylabel('Overall')
plt.title('Odnos overall i finishinga')

plt.show()

Я смотрю в Интернете и нахожу код для следующего:

# libraries
import matplotlib.pyplot as plt
import numpy as np

# create data
x = np.random.normal(size=50000)
y = x * 3 + np.random.normal(size=50000)

# Big bins
plt.hist2d(x, y, bins=(50, 50), cmap=plt.cm.jet)
#plt.show()

# Small bins
plt.hist2d(x, y, bins=(300, 300), cmap=plt.cm.jet)
#plt.show()

# If you do not set the same values for X and Y, the bins aren't square !
plt.hist2d(x, y, bins=(300, 30), cmap=plt.cm.jet)

#plt.show()

ИЯ заменяю их только x на x и y, но это не работает.

Я ожидаю, что результат (график плотности) будет выглядеть так:

enter image description here

1 Ответ

0 голосов
/ 16 апреля 2019

Запрос к фрейму данных со списком имен столбцов, как в вашем коде:

x = datas[[FIRST_ATTRIBUTE]]
y = datas[[SECOND_ATTRIBUTE]]

возвращает pd.Dataframes, с которыми plt.hist2d не может справиться

попробовать:

x = datas[FIRST_ATTRIBUTE]
y = datas[SECOND_ATTRIBUTE]

чтобы получить pd.Series. Это вы должны быть в состоянии построить с plt.hist2d

...