matplotlib fontdict参数应用的坑

背景:

  • 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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值