如何用Seaborn填充线的两侧?

时间:2019-05-13 16:34:48

标签: python-2.7 seaborn

我需要在图表的两侧填充不同的颜色(也许是绿色和红色)。我正在使用以下代码:

Contains = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5, "f": 6 }
input = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5, "f": 6}

def key_value_check(Contains, input):
    for k, v in input.items():
        if k in Contains.keys():
            if v != Contains[k]:
                return False
        if v in Contains.values():
            try:
                if v != Contains[k]:
                    return False
            except Exception as e:
                return False
    return True
print(key_value_check(Contains, input))

使用该代码,我得到下图:

enter image description here

但是显然这是失败的,因为我要在蓝线上方全部使用红色。除了我希望以一种非凡的方式获得x和y轴外,我还可以通过x轴来获得它,但是我不知道为什么我不能通过y轴来获得它。

非常感谢您!

1 个答案:

答案 0 :(得分:0)

是这样吗?:

ax = sns.lineplot(x = range_x, y = range_y, markers = True)
sns.lineplot(ax = ax, x = [range_x[0], range_x[-1]], y = [0, 0], color = 'black')
sns.lineplot(ax = ax, x = [0, 0], y = [range_y[0], range_y[-1]], color = 'black')

ax.fill_between(range_x, range_y,[ax.get_ylim()[1]]*len(range_x), facecolor = 'red', alpha = 0.5)
ax.fill_between(range_x, range_y,[ax.get_ylim()[0]]*len(range_x), facecolor = 'green', alpha = 0.5)

来自fill_between的{​​{3}}:

  

y2:数组(长度N)或标量,可选,默认值:0   定义第二条曲线的节点的y坐标。