matplotlib fontdict参数应用的坑

tech2025-11-11  9

背景:

win10, anaconda 4.8.3, python 3.8.3,在matplotlib.pyplot画图时,发现一些字体的属性不起作用

办法

检查windows系统字体文件夹下,各字体文件的style show/hide信息。有些字体的 font style 只有Regular , 那么即使在程序中更改了fontdict(style='italic"), 也不会有斜体效果,但是程序也不报错。图片见下。例子程序见图片下方。 # #给坐标轴标签加文本框 #bbox 参数, 用help(ax.xlabel)不易查出来 # import matplotlib.pyplot as plt import numpy as np #显示负号 plt.rcParams['axes.unicode_minus']=False x=np.linspace(0.5, 3.5, 100) y=np.sin(x) fig=plt.figure(figsize=(8,8)) ax=fig.add_subplot(111) face_edge_color='r' box=dict(facecolor=face_edge_color, pad=2, alpha=0.4, edgecolor=face_edge_color,) #alpha-只作用于fc. ax.plot(x,y, c='b', ls='--', lw=2) #set text contents #title="$y=\sin(x)$" #前后有 $ 符号时,部分fontdict的属性值无法改变,但也不报错 title="y=sin(x)" xaxis_label="$x\_axis$" yaxis_label="$y\_axis$" ax.set_xlabel(xaxis_label, fontsize=18, bbox=box) ax.set_ylabel(yaxis_label, fontsize=18, bbox=box) ax.set_title(title, va="bottom", fontdict=dict(fontsize=16, color='r', family='Times New Roman', weight='light', style='italic', ), ) ax.yaxis.set_label_coords(-0.08, 0.5) #axes coords ax.xaxis.set_label_coords(1.0, -0.05) #axes coords ax.grid(ls='-.', lw=1, color='gray', alpha=0.5) plt.show()
最新回复(0)