How to add black border to matplotlib 2.0 `ax` object In Python 3?

前端 未结 3 1470
别那么骄傲
别那么骄傲 2021-02-14 14:14

I\'ve been using style sheets in matplotlib lately. I really like how clean the seaborn-white looks and I want to be able to add the border to other s

相关标签:
3条回答
  • 2021-02-14 14:44

    Take a look at this. What you're looking for are these two lines:

    ax.patch.set_edgecolor('black')  
    
    ax.patch.set_linewidth('1')  
    
    0 讨论(0)
  • 2021-02-14 15:02

    The difference between the seaborn-whitegrid and the seaborn-white styles are

    seaborn-whitegrid

    axes.grid: True
    axes.edgecolor: .8
    axes.linewidth: 1
    

    seaborn-white

    axes.grid: False
    axes.edgecolor: .15
    axes.linewidth: 1.25
    

    The following will thus provide identical plots:

    import matplotlib.pyplot as plt
    import pandas as pd
    import numpy  as np
    from collections import *
    
    Se_data = pd.Series(Counter(np.random.randint(0,10,100)))
    with plt.style.context("seaborn-whitegrid"):
        plt.rcParams["axes.edgecolor"] = "0.15"
        plt.rcParams["axes.linewidth"]  = 1.25
        fig, ax = plt.subplots()
        Se_data.plot(kind="barh", ax=ax, title="No Border")
    with plt.style.context("seaborn-white"):
        plt.rcParams["axes.grid"] = True
        fig, ax = plt.subplots()
        Se_data.plot(kind="barh", ax=ax, title="With Border")
    

    0 讨论(0)
  • 2021-02-14 15:06

    You probably want ax.spines.set_color()

    These will give you a broad range of options for custom solutions:

    ax.spines['bottom'].set_color('0.5')
    ax.spines['top'].set_color(None)
    ax.spines['right'].set_color('0.5')
    ax.spines['left'].set_color(None)
    ax.patch.set_facecolor('0.1')
    plt.grid(b=True, which='major', color='0.2', linestyle='-')
    plt.grid(b=True, which='minor', color='0.2', linestyle='-')
    ax.tick_params(axis='x', colors='0.7', which='both')
    ax.tick_params(axis='y', colors='0.7', which='both')
    ax.yaxis.label.set_color('0.9')
    ax.xaxis.label.set_color('0.9')
    ax.margins(0.5)
    fig.patch.set_facecolor('0.15')
    

    For more details see: http://matplotlib.org/api/spines_api.html

    0 讨论(0)
提交回复
热议问题