Python 根据散点图(matplotlib)中的一列定义气泡尺寸,并根据另一列定义气泡颜色
我正在构建一个简单的散点图,从xls文件中读取数据。 这是经典的预期寿命x人均GDP散点图。代码如下:Python 根据散点图(matplotlib)中的一列定义气泡尺寸,并根据另一列定义气泡颜色,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我正在构建一个简单的散点图,从xls文件中读取数据。 这是经典的预期寿命x人均GDP散点图。代码如下: import pandas as pd import matplotlib.pyplot as plt import matplotlib.cm as cm #ler a terceira sheet da planilha data = pd.read_excel('sample.xls', sheet_name=0) data.head() plt.scatter(x = data['
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
#ler a terceira sheet da planilha
data = pd.read_excel('sample.xls', sheet_name=0)
data.head()
plt.scatter(x = data['LifeExpec'],
y = data['GDPperCapita'],
s = data['PopX1000'],
c = data['PopX1000'],
cmap=cm.viridis,
edgecolors = 'none',
alpha = 0.7)
for estado in range(len(data['UF'])):
plt.text(x = data['LifeExpec'][estado],
y = data['GDPperCapita'][estado],
s = data['UF'][estado],
fontsize = 14)
plt.colorbar()
plt.show()
.xls文件:
xls文件(PopX1000)中的“填充”列定义了气泡的大小,目前还定义了气泡的颜色。
我希望气泡的大小根据人口的不同而变化(就像现在一样),但是颜色会根据州所在的地区而变化
我相信我不能简单地更改c属性,因为它需要一个浮点值。
有关如何执行此操作的任何提示?您可以将
区域
转换为数字表示,并将其用作颜色贴图的“键”。下面是两种方法(一种是注释掉的,选择任何一种,结果应该是相同的):
plt.scatter(x = data['LifeExpec'],
y = data['GDPperCapita'],
s = data['PopX1000'],
c = pd.factorize(data['Region'])[0],
# Alternatively:
# c = data['Region'].astype('category').cat.codes
cmap=cm.viridis,
edgecolors = 'none',
alpha = 0.7)