我使用Seaborn绘制小提琴,尽管我假设这个错误来自Matplotlib。
sns.set_context("notebook", font_scale=1, rc={"lines.linewidth": 1.5})
(to全球调整)和
ax.tick_params(axis='y', labelsize=19)
ax.yaxis.get_offset_text().set_fontsize(19)
然而,我获得的结果取决于tick标签的值:
也就是说,每次标签是10的完美逆幂(这里是1 E-4)时,我会得到一个字体大小,否则我会得到另一个字体大小。我尝试了多种值的组合(例如,更改“font_scale”或labelsize..),但我从来没有得到一致的东西。当我设置不同的符号样式时:
ax.yaxis.set_major_formatter(mpl.ticker.ScalarFormatter(useMathText=True,useOffset=False))
它只影响10的完全反幂的值。
我在这里使用的其他(可能)相关绘图函数是:
b = sns.violinplot(data=mydata_without_outliers, cut=0, palette=colors, scale='width')
ax.set(yscale="log")
sns.scatterplot(data=outlier_data, marker='D', facecolor='blue', edgecolor=(0,0,0), color='blue')
plt.subplots_adjust(top=0.947, bottom=0.074, left=0.052, right=0.99, hspace=0.095, wspace=0.185);
sns.despine()
其产生具有叠加的散点图的小提琴图以显示异常值。
编辑:澄清一下,这不是一个关于“如何在Matplotlib中更改字体”的问题:我可以谷歌一下。这不是一个关于“如何更改次要和主要刻度”的问题,因为这假设一个人 * 已经 * 知道次要和主要刻度是什么。这个问题实际上是关于上面问的问题:如何使字体在10的幂和非幂之间保持一致,其他问题没有回答,而tmdvision提出的答案完美地回答了。谷歌搜索“10字体matplotlib的幂”导致完全不同的问题有完全不同的答案,包括StackOverflow。
1条答案
按热度按时间lmyy7pcs1#
ax.tick_params
有一个名为which
的参数,该参数控制它是否将修改major
tick、minor
tick或both
。默认值是
major
,这就是你看到的--主刻度是10的整数次幂,次刻度是其他的。因此,解决方案是添加
which='both'
:如果你还想改变次要刻度的格式,你可以添加一行: