【问题标题】:How to add title to seaborn boxplot如何为seaborn boxplot添加标题
【发布时间】:2017-07-13 08:56:36
【问题描述】:

似乎很适合 Google,但无法在网上找到有效的东西。

sns.boxplot('Day', 'Count', data= gg).title('lalala')sns.boxplot('Day', 'Count', data= gg).suptitle('lalala') 我都试过了。没有工作。我想这可能是因为我也在使用 matplotlib。

【问题讨论】:

    标签: python pandas matplotlib seaborn


    【解决方案1】:

    sns.boxplot() 函数返回 Axes(matplotlib.axes.Axes) 对象。请参考documentation 您可以使用 'set' 方法添加标题,如下所示:

    sns.boxplot('Day', 'Count', data=gg).set(title='lalala')
    

    您还可以在 set 方法中添加其他参数,例如 xlabel、ylabel。

    sns.boxplot('Day', 'Count', data=gg).set(title='lalala', xlabel='its x_label', ylabel='its y_label')
    

    matplotlib.axes.Axes documentaion 中提到的其他一些方法可以添加磁贴、图例和标签。

    【讨论】:

    • 这是一个不错的解决方案,因为它也适用于sns.relplot()
    【解决方案2】:

    对于单个箱线图:

    import seaborn as sb
    sb.boxplot(data=Array).set_title('Title')
    

    更多箱线图在同一图中:

    import seaborn as sb
    sb.boxplot(data=ArrayofArray).set_title('Title')
    

    例如

    import seaborn as sb
    myarray=[78.195229, 59.104538, 19.884109, 25.941648, 72.234825, 82.313911]
    sb.boxplot(data=myarray).set_title('myTitle')
    

    【讨论】:

      【解决方案3】:

      .set_title('') 可用于为 Seaborn Plot 添加标题

      import seaborn as sb
      sb.boxplot().set_title('Title')
      

      【讨论】:

        【解决方案4】:

        Seaborn 箱线图返回一个 matplotlib 轴实例。与 pyplot 本身不同,它有一个方法 plt.title(),轴的对应参数是 ax.set_title()。因此,您需要调用

        sns.boxplot('Day', 'Count', data= gg).set_title('lalala')
        

        一个完整的例子是:

        import seaborn as sns
        import matplotlib.pyplot as plt
        
        tips = sns.load_dataset("tips")
        sns.boxplot(x=tips["total_bill"]).set_title("LaLaLa")
        
        plt.show()
        

        当然,您也可以使用返回的轴实例使其更具可读性:

        ax = sns.boxplot('Day', 'Count', data= gg)
        ax.set_title('lalala')
        ax.set_ylabel('lololo')
        

        【讨论】:

        • 很遗憾set_title() 和类似的功能没有return self,那会很整洁。
        • @LaurensKoppenol Matplotlib 的信条是返回该方法创建或操作的对象。这是一个灵活性问题;并且 matplotlib 明确地希望为用户提供这种灵活性。位于 matplotlib 之上的更多高级 API 通常决定允许链接,但在这些情况下,当您需要一些非标准行为时,您在操作底层对象时会遇到问题。
        • 结合matplotlib的各种接口时我绝对同意
        • AttributeError: 'FacetGrid' 对象没有属性 'set_title'
        【解决方案5】:

        尝试在代码末尾添加:

        import matplotlib.pyplot as plt
        
        plt.title('add title here')
        

        【讨论】:

        • 也许是最好的解决方案,当然不是纯粹的 sns -ish,而是无忧无虑和简单。谢谢
        猜你喜欢
        • 2015-07-01
        • 2020-12-10
        • 2018-08-21
        • 2018-02-28
        • 2017-08-06
        • 2014-12-19
        • 2015-12-19
        • 2017-12-10
        • 2017-06-24
        相关资源
        最近更新 更多