Don*_*kby 5 python matplotlib seaborn
我喜欢多二元 KDE 图的 Seaborn 示例,但我希望在该示例中使用标准 matplotlib 图例而不是自定义标签。
这是我尝试使用图例的示例:
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
cmaps = ['Reds', 'Blues', 'Greens', 'Greys']
np.random.seed(0)
for i, cmap in enumerate(cmaps):
offset = 3 * i
x = np.random.normal(offset, size=100)
y = np.random.normal(offset, size=100)
label = 'Offset {}'.format(offset)
sns.kdeplot(x, y, cmap=cmaps[i]+'_d', label=label)
plt.title('Normal distributions with offsets')
plt.legend(loc='upper left')
plt.show()
Run Code Online (Sandbox Code Playgroud)
标签参数 tokdeplot()
似乎适用于单变量 KDE 图,但不适用于双变量图。如何添加图例?
基于本教程,我了解到您可以将标签传递给legend()
函数。
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import numpy as np
cmaps = ['Reds', 'Blues', 'Greens', 'Greys']
np.random.seed(0)
label_patches = []
for i, cmap in enumerate(cmaps):
offset = 3 * i
x = np.random.normal(offset, size=100)
y = np.random.normal(offset, size=100)
label = 'Offset {}'.format(offset)
sns.kdeplot(x, y, cmap=cmaps[i]+'_d')
label_patch = mpatches.Patch(
color=sns.color_palette(cmaps[i])[2],
label=label)
label_patches.append(label_patch)
plt.title('Normal distributions with offsets')
plt.legend(handles=label_patches, loc='upper left')
plt.show()
Run Code Online (Sandbox Code Playgroud)