Укажите диапазон цветов для графика плотности в Matplotlib - PullRequest
0 голосов
/ 26 декабря 2018

Следующий код:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde

# Generate fake data
x = np.random.normal(size=1000)
y = x * 3 + np.random.normal(size=1000)

# Calculate the point density
xy = np.vstack([x,y])
z = gaussian_kde(xy)(xy)

# Sort the points by density, so that the densest points are plotted last
idx = z.argsort()
x, y, z = x[idx], y[idx], z[idx]

fig, ax = plt.subplots()
ax.scatter(x, y, c=z, s=50, edgecolor='')
plt.show()

создает график следующим образом:

enter image description here

Как изменить тему скрасный, скажем, синий?Примерно так:

import seaborn as sns
sns.palplot(sns.color_palette("Blues"))

enter image description here

1 Ответ

0 голосов
/ 26 декабря 2018

Вы можете назначить любую цветовую карту графику scatter следующим образом. Здесь вы найдете все существующие цветовые карты в matplotlib.

Нужная цветовая карта называется Blues.Вы должны импортировать matplotlib.cm, чтобы получить доступ к цветным картам, а затем передать требуемую цветовую карту в качестве аргумента cmap на графике рассеяния.Кроме того, вы можете показать цветовую панель для интерпретации цветов.Если вы хотите изменить цветовую карту, просто включите _r в конце этой цветной карты.Например, Blues_r изменит карту с масштабом, который теперь меняется с синего (низкий уровень) на белый (высокий уровень).

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
import matplotlib.cm as cm

# Generate fake data
x = np.random.normal(size=1000)
y = x * 3 + np.random.normal(size=1000)

# Calculate the point density
xy = np.vstack([x,y])
z = gaussian_kde(xy)(xy)

# Sort the points by density, so that the densest points are plotted last
idx = z.argsort()
x, y, z = x[idx], y[idx], z[idx]

fig, ax = plt.subplots()
ax_ = ax.scatter(x, y, c=z, cmap=cm.Blues, s=50, edgecolor='')
plt.colorbar(ax_)

enter image description here

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