Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用seaborn FaceGrid更改字体大小?_Python_Seaborn - Fatal编程技术网

Python 如何使用seaborn FaceGrid更改字体大小?

Python 如何使用seaborn FaceGrid更改字体大小?,python,seaborn,Python,Seaborn,我已使用seaborn中的factorplot绘制了我的数据,并获取了FaceGrid对象,但仍然无法理解如何在这样的绘图中设置以下属性: 图例大小:当我绘制很多变量时,我得到非常小的图例,字体很小 y和x标签的字体大小(与上述问题类似) 您可以将调用中的字体放大到sns.set() FaceGrid绘图确实产生了非常小的标签。尽管@paul-h描述了使用sns.set作为更改字体缩放的一种方式,但它可能不是最佳解决方案,因为它将更改所有绘图的font\u缩放设置 您可以使用更改当前打印的设置

我已使用
seaborn
中的
factorplot
绘制了我的数据,并获取了
FaceGrid
对象,但仍然无法理解如何在这样的绘图中设置以下属性:

  • 图例大小:当我绘制很多变量时,我得到非常小的图例,字体很小
  • y和x标签的字体大小(与上述问题类似)

  • 您可以将调用中的字体放大到
    sns.set()


    FaceGrid绘图确实产生了非常小的标签。尽管@paul-h描述了使用
    sns.set
    作为更改字体缩放的一种方式,但它可能不是最佳解决方案,因为它将更改所有绘图的
    font\u缩放设置

    您可以使用更改当前打印的设置:

    with sns.plotting_context(font_scale=1.5):
        sns.factorplot(x, y ...)
    

    我对@paul-H代码做了一些小修改,这样您就可以独立设置x/y轴和图例的字体大小。希望有帮助:

    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    x = np.random.normal(size=37)
    y = np.random.lognormal(size=37)
    
    # defaults                                                                                                         
    sns.set()
    fig, ax = plt.subplots()
    ax.plot(x, y, marker='s', linestyle='none', label='small')
    ax.legend(loc='upper left', fontsize=20,bbox_to_anchor=(0, 1.1))
    ax.set_xlabel('X_axi',fontsize=20);
    ax.set_ylabel('Y_axis',fontsize=20);
    
    plt.show()
    
    这是输出:


    对于图例,您可以使用

    plt.setp(g._legend.get_title(), fontsize=20)
    

    其中g是调用生成它的函数后返回的facetgrid对象

    下面的回答是正确的,应该会帮助你,但我想说,听起来你在IPython笔记本上绘图,因此问题实际上与seaborn无关,但如果笔记本上的数字最终大于分配给他们的div,则笔记本会缩小数字。如果保存图形,所有内容都应该是您期望的大小。此外,如果您在列上绘制了许多变量,而没有行变量,则可以使用
    col\u wrap
    将面“包装”到多行上,这可能会有所帮助。@mwaskom说“
    font\u scale
    如果上下文为
    None
    ,则忽略
    font\u scale
    ,因此您需要
    打印上下文(“笔记本”,font\u scale=5.5)
    或类似内容。”()大小与默认matplotlib字体大小相对。对我来说,最好使用plt.rc()更改字体大小)在我的脚本或Jupyter笔记本顶部调用。请看,这似乎覆盖了所选主题。
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    x = np.random.normal(size=37)
    y = np.random.lognormal(size=37)
    
    # defaults                                                                                                         
    sns.set()
    fig, ax = plt.subplots()
    ax.plot(x, y, marker='s', linestyle='none', label='small')
    ax.legend(loc='upper left', fontsize=20,bbox_to_anchor=(0, 1.1))
    ax.set_xlabel('X_axi',fontsize=20);
    ax.set_ylabel('Y_axis',fontsize=20);
    
    plt.show()
    
    plt.setp(g._legend.get_title(), fontsize=20)