如何用distplot绘制两个图例

时间:2019-02-08 15:46:43

标签: python matplotlib legend seaborn

我想在图形中绘制两个标签,但是我没有成功做到这一点。它仅显示最后一个标签"Old_Formula"

这是一个简单的例子

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

values1 = np.array([1, 2, 2, 5, 3, 4, 7, 4, 3, 3])
values2 = np.array([1, 4, 4, 6, 3, 1, 7, 1, 7, 6])
f, (ax1, ax2) = plt.subplots(1, 2, sharex=True)
sns.distplot(values1, ax=ax1, kde=False, label="New_Formula")
sns.distplot(values2, ax=ax2, kde=False, label="Old_Formula")
plt.legend()
plt.show()

1 个答案:

答案 0 :(得分:0)

您可以通过从图形对象f调用图例来实现。我指定了颜色,因为否则您将在两个图中看到相同的颜色并且无法区分。

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

values1 = np.array([1, 2, 2, 5, 3, 4, 7, 4, 3, 3])
values2 = np.array([1, 4, 4, 6, 3, 1, 7, 1, 7, 6])
f, (ax1, ax2) = plt.subplots(1, 2, sharex=True)
sns.distplot(values1, ax=ax1, kde=False, color='green', label="New_Formula")
sns.distplot(values2, ax=ax2, kde=False, color='red', label="Old_Formula")
f.legend()
plt.show()

enter image description here