背景:
- 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()
版权声明:本文为seeker3原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。