несколько участков морского участка с одним и тем же цветом - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь построить два распределения kde на одном изображении, и мне интересно, есть ли способ использовать один и тот же «диапазон цветов» для обоих распределений.

Если вы запустите следующий кодвы увидите, что самый темный красный и самый темный зеленый соответствуют двум разным значениям плотности (0,04 и 0,15), в то время как я хотел бы иметь обе цветовые шкалы с одинаковым диапазоном, чтобы вы могли легко сравнить эти два распределения (т.е. я хотел бы иметьсамый темный красный и самый темный зеленый соответствуют одному и тому же значению плотности).

Спасибо

import numpy as np
import seaborn as sns
import pandas
import matplotlib.pyplot as plt
from matplotlib import rcParams

np.random.seed(10)
sns.set(color_codes=True)

rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Arial']

plt.ioff()

f, ax = plt.subplots(figsize=(15, 15))
ax.tick_params(axis='both', which='major', labelsize=22)

mean, cov = [0, 2], [(2, 1), (.5, 1)]
x1, y1 = np.random.multivariate_normal(mean, cov, size=50).T

mean, cov = [5, 7], [(3, 2), (7, 1)]
x2, y2 = np.random.multivariate_normal(mean, cov, size=50).T

ax = sns.kdeplot(x1, y1, cmap="Reds",   shade=True, shade_lowest=False, alpha=0.66, legend=False, cbar=True)
ax = sns.kdeplot(x2, y2, cmap="Greens", shade=True, shade_lowest=False, alpha=0.66, legend=False, cbar=True)

plt.xlabel("foo", fontsize=22)
plt.ylabel("bar", fontsize=22)
plt.savefig("foo_vs_bar.png")

enter image description here

1 Ответ

0 голосов
/ 28 августа 2019

Возможно, слишком поздно, но у меня просто была такая же проблема.Вы можете указать уровни в kwargs, например,

kwargs = {'levels': np.arange(0, 0.15, 0.01)}

и перейти к sns.kdeplot ():

ax = sns.kdeplot(x1, y1, cmap="Reds",   shade=True, shade_lowest=False,
             alpha=0.66, legend=False, cbar=True, **kwargs)
...