来自csv中数据的python中的散点图密度

时间:2019-04-16 10:44:00

标签: python scatter-plot data-analysis density-plot

我有一个非常庞大的数据集,共有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()

我在Internet上找到了执行以下操作的代码:

# 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和y替换了x,但这是行不通的。

我希望输出(密度图)看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:0)

使用列名列表查询数据框,如代码中所示:

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

产生pd.hist2d无法处理的pd.Dataframes

尝试:

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

获得pd.Series。这些您应该能够使用plt.hist2d进行绘制