совместный график python seaborn, разные цвета для каждой гистограммы

Я хотел бы изменить цвета для каждой гистограммы на совместном графике, созданном с помощью seaborn.

Мне удалось изменить цвет для обоих графиков с помощью marginal_kws, но как я могу установить цвет для каждой гистограммы? (например, красная и зеленая гистограмма)

Минимальный пример моего совместного сюжета:

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

x, y = np.random.multivariate_normal([2, 3], [[0.3, 0], [0,  0.5]], 1000).T

with sns.axes_style("white"):
  g = sns.jointplot(x=x, y=y, kind="hex", stat_func=None, marginal_kws={'color': 'green'})
plt.show()

введите здесь описание изображения


person sklingel    schedule 17.08.2015    source источник


Ответы (2)


Ответ iayork об использовании объектов осей напрямую хорош, хотя другим вариантом было бы изменить цвет полос после построения:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="white", color_codes=True)

x, y = np.random.multivariate_normal([2, 3], [[0.3, 0], [0,  0.5]], 1000).T
g = sns.jointplot(x=x, y=y, kind="hex", stat_func=None, marginal_kws={'color': 'green'})
plt.setp(g.ax_marg_y.patches, color="r")

введите описание изображения здесь

person mwaskom    schedule 17.08.2015

Я думаю, вам нужно использовать объединенную сетку, а не совместный сюжет здесь. Вот попытка приблизиться к вашему нынешнему сюжету; вам, вероятно, придется больше поиграть с цветами и cmaps, чтобы график hexbin выглядел более привлекательно.

x, y = np.random.multivariate_normal([2, 3], [[0.3, 0], [0,  0.5]], 1000).T

def hexbin(x, y): 
    plt.hexbin(x, y, gridsize=20, cmap='Blues')

with sb.axes_style("white"):
    g = sb.JointGrid(x=x, y=y, ylim=(0,6))
    g = g.plot_joint(hexbin)
    g.ax_marg_x.hist(x, color="b", alpha=.6) 
    g.ax_marg_y.hist(y, color="r", alpha=.6, orientation="horizontal")

введите здесь описание изображения

person iayork    schedule 17.08.2015
comment
Я думаю, что этот метод даст больше гибкости в будущем. Это позволяет человеку изменить не только цвет, но, возможно, поставить другое количество интервалов на гистограмму или указать определенный диапазон для интервалов. - person blue_chip; 09.03.2016