首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >海涂字体大小的精细控制

海涂字体大小的精细控制
EN

Stack Overflow用户
提问于 2016-03-25 13:26:07
回答 3查看 173.2K关注 0票数 59

目前,我正试图用“海运”来为我的学术论文创作情节。这些图表看起来很棒,很容易生成,但我遇到的一个问题是,如何很好地控制图形中的字体大小。

我的论文中的字体大小是9pt,我想确保我的情节中的字体大小要么是9pt,要么是10pt。但在海上,字体大小主要通过字体比例尺sns.set_context("paper", font_scale=0.9)来控制。因此,我很难找到合适的字体大小,除非经过反复试验。有没有更有效的方法来做到这一点?

我还想确保字体大小在不同的海图之间是一致的。但并不是所有的海图都有相同的维度,所以似乎在所有的绘图上使用相同的font_scale并不一定会在不同的绘图中创建相同的字体大小?

我把我的密码附在下面。我很感激任何关于如何为两栏学术论文编排情节的评论。我的目标是能够控制数字的大小,而不扭曲字体大小或情节。我用乳胶写论文。

代码语言:javascript
复制
# Seaborn setting                                                                                                                                              
sns.set(style='whitegrid', rc={"grid.linewidth": 0.1})
sns.set_context("paper", font_scale=0.9)                                                  
plt.figure(figsize=(3.1, 3)) # Two column paper. Each column is about 3.15 inch wide.                                                                                                                                                                                                                                 
color = sns.color_palette("Set2", 6)

# Create a box plot for my data                                                      
splot = sns.boxplot(data=df, palette=color, whis=np.inf,                              
        width=0.5, linewidth = 0.7)

# Labels and clean up on the plot                                                                                                                                                                                                                                                                                              
splot.set_ylabel('Normalized WS')                                                     
plt.xticks(rotation=90)                                                               
plt.tight_layout()                                                                    
splot.yaxis.grid(True, clip_on=False)                                                 
sns.despine(left=True, bottom=True)                                                   
plt.savefig('test.pdf', bbox_inches='tight')                                          
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-25 14:46:12

你是正确的。这是一个记录不清的问题。但是,您可以在生成绘图后直接更改字体大小参数(与字体比例相反)。请检查以下示例:

代码语言:javascript
复制
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")

b = sns.boxplot(x=tips["total_bill"])
b.axes.set_title("Title",fontsize=50)
b.set_xlabel("X Label",fontsize=30)
b.set_ylabel("Y Label",fontsize=20)
b.tick_params(labelsize=5)
plt.show()

,其结果是:

为了在情节之间保持一致,我认为你只需要确保DPI是一样的。顺便说一句,由于存在“rc词典”参数,所以也有可能对font.size进行自定义,但我不太确定如何做到这一点。

注意:我也不明白为什么他们改变了轴标签和滴答的字体大小变量的名称。似乎有点不合常理。

票数 109
EN

Stack Overflow用户

发布于 2016-05-24 05:48:49

这是令人满足的,不是吗?在设置上下文时,我发现了最简单的方法,例如:

代码语言:javascript
复制
sns.set_context("paper", rc={"font.size":8,"axes.titlesize":8,"axes.labelsize":5})   

这应该照顾到90%的标准绘图使用。如果您希望挠痒标签小于轴标签,请将“axes.labelsize”设置为较小的(ticklabel)值,并手动指定轴标签(或其他自定义元素),例如:

代码语言:javascript
复制
axs.set_ylabel('mylabel',size=6)

您可以将其定义为一个函数,并将其加载到脚本中,这样您就不必记住标准数字,也不必每次调用它。

代码语言:javascript
复制
def set_pubfig:
    sns.set_context("paper", rc={"font.size":8,"axes.titlesize":8,"axes.labelsize":5})   

当然,您可以使用配置文件,但我想整个想法是有一个简单、直接的方法,这就是为什么上面的方法工作得很好。

注意:如果您指定了这些数字,那么对于所有指定的字体元素,都会忽略在sns.set_context中指定sns.set_context,即使您设置了它。

票数 41
EN

Stack Overflow用户

发布于 2022-11-10 19:52:48

我花了很长时间试图找出“纸”sns上下文的实际值。我只能为“说话”找到它,老实说,我在发火!只是要用

代码语言:javascript
复制
sns.set_context("paper", rc{"font.size":8,"axes.titlesize":8,"axes.labelsize":5})  

即使这些可能是值!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36220829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档