Python Matplotlib';s colormap未应用于散点图,未返回任何错误
我正在构建一个简单的散点图,从xls文件中读取数据。 与“手动”设置每个不同值的颜色不同,我想使用一个colormaps matplotlib(“例如viridis”) 根据我在互联网上找到的一些示例,我编写了以下代码:Python Matplotlib';s colormap未应用于散点图,未返回任何错误,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我正在构建一个简单的散点图,从xls文件中读取数据。 与“手动”设置每个不同值的颜色不同,我想使用一个colormaps matplotlib(“例如viridis”) 根据我在互联网上找到的一些示例,我编写了以下代码: import pandas as pd import matplotlib.pyplot as plt import matplotlib.cm as cm data = pd.read_excel('sample.xls', sheet_name=0) data.head(
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
data = pd.read_excel('sample.xls', sheet_name=0)
data.head()
plt.scatter(x = data['ExpecVida'],
y = data['PIBperCapita'],
s = data['PopX1000'],
cmap=cm.viridis)
plt.show()
在Spyder上运行此代码时,不会返回任何错误。然而,结果是:
一切都是默认的蓝色。
有人知道我做错了什么吗?如文档中所述: cmap:Colormap,可选,默认值:无 Colormap实例或注册的Colormap名称仅当c是浮点数组时才使用cmap。如果没有,则默认为rc image.cmap 因此,添加参数c:
# Create dummy data:
data = pd.DataFrame(np.random.rand(10,3), columns=['ExpecVida', 'PIBperCapita', 'PopX1000'])
plt.scatter(x=data['ExpecVida'],
y=data['PIBperCapita'],
s=data['PopX1000']*1000,
c=data['PopX1000'],
cmap=cm.viridis)
(注意,我只将s乘以1000,这样点就不会小得离谱,因为我的数据只是0-1范围内的随机数)如文档中所述: cmap:Colormap,可选,默认值:无 Colormap实例或注册的Colormap名称仅当c是浮点数组时才使用cmap。如果没有,则默认为rc image.cmap 因此,添加参数c:
# Create dummy data:
data = pd.DataFrame(np.random.rand(10,3), columns=['ExpecVida', 'PIBperCapita', 'PopX1000'])
plt.scatter(x=data['ExpecVida'],
y=data['PIBperCapita'],
s=data['PopX1000']*1000,
c=data['PopX1000'],
cmap=cm.viridis)
(注意,我只将s乘以1000,这样点就不会小得离谱,因为我的数据是0-1范围内的随机数)