Python 如何在scanpy中更改字体大小

Python 如何在scanpy中更改字体大小,python,python-3.x,matplotlib,scanpy,Python,Python 3.x,Matplotlib,Scanpy,我正在使用scanpy生成点图,无法更改字体大小。有没有办法做到这一点 例如,如何编辑这行代码 sc.pl.dotplot(df,[“基因”],'CellType',dendrogram=True,save=name)IIRC,scanpy只在引擎盖下使用matplotlib,因此有几个选项: 您可以全局设置字体大小: import matplotlib.pyplot as plt plt.rcParams.update({'font.size': 'large'}) 您只能专门更新(所有)轴

我正在使用
scanpy
生成点图,无法更改字体大小。有没有办法做到这一点

例如,如何编辑这行代码


sc.pl.dotplot(df,[“基因”],'CellType',dendrogram=True,save=name)

IIRC,scanpy只在引擎盖下使用matplotlib,因此有几个选项:

您可以全局设置字体大小:

import matplotlib.pyplot as plt
plt.rcParams.update({'font.size': 'large'})
您只能专门更新(所有)轴标签的字体大小:

plt.rcParams.update({'axes.labelsize' : 'large'}) 
plt.rcParams.update({'axes.xtick.labelsize' : 'large'})   
plt.rcParams.update({'axes.ytick.labelsize' : 'large'})    
最后,如果有轴的控制柄,则可以通过遍历轴属性来更改标签的字体大小:

dp_object = sc.pl.dotplot(df,  ["gene"], 'CellType', dendrogram=True,  save = name)
axes_dict = dp_object.get_axes()
# figure out which axis you want by printing the axes_dict
# print(axes_dict)
ax = axes_dict[...]
ax.xaxis.label.set_fontsize(22)
for label in ax.get_xticklabels():
    label.set_fontsize('large')

事实证明,您可以通过以下方式直接使用scanpy执行此操作:

sc.set\u figure\u参数(scanpy=True,fontsize=14)


但是,我仍然不确定如何具体更改y轴…

我想你指的是plt.rcParams.update?第二段代码无法编译。不幸的是,第三个块在单独的绘图中生成更大的字体;我修正了打字错误。是的,我忽略了,由于
groupby
,您正在绘制多个组件。在这种情况下,您可以使用
dotplot\u对象访问轴。get\u axes
方法(显示在更新的答案中)。感谢您的评论。我得到的错误是:'NoneType'对象没有属性'get\u axes'运行dp\u对象。get\u axes()。不知道如何解决,肯定花了不少时间试图解决这个问题…也许你的版本有问题?我很确定这个特性在某个时候起作用了(请参阅中的最后一个示例。我找到了它,非常感谢!事实证明您必须将return\u fig=True!