Python 使用seaborn FaceGrid热图更改刻面标题的字体大小

Python 使用seaborn FaceGrid热图更改刻面标题的字体大小,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,注:这是一个与“”不同的问题。在facetgrid中使用热图时,此处建议的方法不起作用 在facetgrid内绘制热图时,如何更改刻面标题的字体大小 下面的代码尝试了两种方法,将fontsize=传递到set_titles()并将整个内容包装到绘图上下文中。据我所知,在使用热图时,两者似乎都不会对刻面标题产生任何影响,尽管fontweight确实发生了变化。使用热图时,是否有其他选项用于控制刻面标题 import pandas as pd import numpy as np import it

注:这是一个与“”不同的问题。在facetgrid中使用热图时,此处建议的方法不起作用

在facetgrid内绘制热图时,如何更改刻面标题的字体大小

下面的代码尝试了两种方法,将
fontsize=
传递到
set_titles()
并将整个内容包装到绘图上下文中。据我所知,在使用热图时,两者似乎都不会对刻面标题产生任何影响,尽管fontweight确实发生了变化。使用热图时,是否有其他选项用于控制刻面标题

import pandas as pd
import numpy as np
import itertools
import seaborn as sns

print("seaborn version {}".format(sns.__version__))
# R expand.grid() function in Python
# https://stackoverflow.com/a/12131385/1135316
def expandgrid(*itrs):
   product = list(itertools.product(*itrs))
   return {'Var{}'.format(i+1):[x[i] for x in product] for i in range(len(itrs))}

methods=['method 1', 'method2', 'method 3', 'method 4']
times = range(0,100,10)
data = pd.DataFrame(expandgrid(methods, times, times))
data.columns = ['method', 'dtsi','rtsi']
data['nw_score'] = np.random.sample(data.shape[0])

def facet(data,color):
    data = data.pivot(index="dtsi", columns='rtsi', values='nw_score')
    g = sns.heatmap(data, cmap='Blues', cbar=False)

with sns.plotting_context(font_scale=5.5):
    g = sns.FacetGrid(data, col="method", col_wrap=2, size=3, aspect=1)
    g = g.map_dataframe(facet)
    g.set_titles(col_template="{col_name}", fontweight='bold', fontsize=18)

谢谢@mwaskon,这就是答案-调用
设置标题时使用
size=

这就引出了更多的问题,比如

  • 请您将
    set\u titles
    更改为使用的
    fontwweight=
    fontsize=
    而不是
    fontwweight=
    size=
    <代码>大小=
用于其他地方的刻面高度(以英寸为单位)
  • 为什么在这种情况下,
    sns.plotting\u context
    完全无效 背景

  • 我认为您希望将
    size=
    传递给
    set\u titles
    ,而不是
    fontsize=
    set\u titles
    只是将附加的关键字参数传递给matplotlib方法
    ax.set\u title
    ,而这需要
    size
    ,因此seaborn对此无能为力。至于
    plotting\u context
    ,由于它的工作方式,如果
    context
    None
    ,则忽略
    font\u scale
    ,因此您需要
    plotting\u context(“笔记本”,font\u scale=5.5)
    或类似的内容。再次感谢您,我从。我会在那里贴一条评论,指向你的答案——也许可以省去一些悲伤。