【问题标题】:Matplotlib's colormap is not being applied to scatter plot, no error is returnedMatplotlib 的颜色图未应用于散点图,不返回错误
【发布时间】:2018-10-24 05:07:18
【问题描述】:

我正在构建一个从 xls 文件中读取数据的简单散点图。 而不是“手动”设置每个不同值的颜色,我想使用颜色图之一 matplotlib provides(例如“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()

plt.scatter(x = data['ExpecVida'],
        y = data['PIBperCapita'],
        s = data['PopX1000'],
        cmap=cm.viridis)

plt.show()

当我在 Spyder 上运行此代码时,不会返回错误。然而,结果是这样的:

一切仍处于默认的蓝色阴影中。 有谁知道我做错了什么?

【问题讨论】:

    标签: python python-3.x matplotlib


    【解决方案1】:

    如文档here中所述:

    cmap : 颜色图,可选,默认:无

    颜色图实例或注册的颜色图名称。 cmap 仅在 c 是浮点数组时使用。如果没有,默认为 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 范围内的随机数)

    【讨论】:

      猜你喜欢
      • 2021-04-15
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 2011-08-29
      • 2015-06-06
      相关资源
      最近更新 更多