【发布时间】:2020-11-16 23:51:41
【问题描述】:
我有三个数据集(df1、df2、df3,这里以随机生成为例),我想在黑色背景上一起绘制联合核密度。我不喜欢关节 kdes 重叠部分的外观,因为当白色部分(最低密度)与黑色背景重叠时,它真的很突出。相比之下,这在白色背景下看起来不错(将包括在底部进行比较),但我需要它是黑色背景。
如何使这更好的想法可能是:
- 反转颜色条,使密度最低的是深色,密度高的是亮色。
有谁知道如何做到这一点或如何使它变得更好?
我不知道从哪里开始寻找,但我在 seaborn 的 GitHub 上找到了这个 closed issue,它谈到了一些关于着色的内容。
import numpy as np
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# Uncomment for black background figure
plt.rcParams.update({
"grid.color": "white",
'hatch.color': 'k',
"lines.color": "white",
"patch.edgecolor": "white",
'patch.facecolor': ([0, 1, 1]),
'grid.alpha': 0.4,
"text.color": "lightgray",
"axes.facecolor": "black",
"axes.edgecolor": "lightgray",
"axes.labelcolor": "white",
"xtick.color": "white",
"ytick.color": "white",
"grid.color": "lightgray",
"figure.facecolor": "black",
"figure.edgecolor": "black",
"savefig.facecolor": "black",
"savefig.edgecolor": "black"})
df1 = pd.DataFrame(np.random.randint(0,60,size=(1500, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.randint(20,80,size=(1500, 4)), columns=list('ABCD'))
df3 = pd.DataFrame(np.random.randint(40,100,size=(1500, 4)), columns=list('ABCD'))
f, axs = plt.subplots()
# Draw density plots
axs = sns.kdeplot(df1.A, df1.B, alpha=0.5,
cmap="Reds", shade=True, shade_lowest=False, cbar=True)
axs = sns.kdeplot(df2.A, df2.B, alpha=0.5,
cmap="Oranges", shade=True, shade_lowest=False, cbar=True)
axs = sns.kdeplot(df3.A, df3.B, alpha=0.5,
cmap="Blues", shade=True, shade_lowest=False, cbar=True)
【问题讨论】:
标签: python pandas matplotlib plot seaborn