Цветовая карта Matplotlib не применяется к точечной диаграмме, ошибка не возвращается - PullRequest
0 голосов
/ 14 мая 2018

Я строю простой точечный график, который читает данные из файла xls.Вместо «ручной» установки цветов для каждого отдельного значения я хочу использовать одну из таблиц цветов, которую 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()

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

plt.show()

Когда я запускаю этот код в Spyder, ошибки не возвращаются.Тем не менее, это результат:

Scatter plot with no colormap

Все по-прежнему в этом оттенке синего по умолчанию.Кто-нибудь знает, что я делаю не так?

1 Ответ

0 голосов
/ 14 мая 2018

Как указано в документации здесь :

cmap: Colormap, необязательно, по умолчанию: нет

Экземпляр Colormap или зарегистрированное имя colormap. cmap используется, только если c является массивом с плавающей точкой . Если None, по умолчанию используется 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)

Graph output

(Обратите внимание, я только умножил s на 1000, чтобы точки не были смехотворно малы, поскольку мои данные - всего лишь случайности в диапазоне 0-1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...