python画图图例字体_Matplotlib如何设置图例的字体类型

该篇博客介绍了如何在matplotlib中通过FontProperties对象设置和使用自定义字体,特别是在Ubuntu系统下,包括安装字体、更新字体缓存以及指定字体文件路径的方式。同时,解释了如何清除matplotlib的字体缓存以刷新字体列表。
摘要由CSDN通过智能技术生成

通过prop参数将FontProperties对象(如下面的font)传递给ax.legend:import matplotlib.pyplot as plt

import numpy as np

import matplotlib.font_manager as font_manager

fig, ax = plt.subplots()

x = np.linspace(-10, 10, 100)

ax.plot(np.sin(x)/x, label='Mexican hat')

font = font_manager.FontProperties(family='Comic Sans MS',

weight='bold',

style='normal', size=16)

ax.legend(prop=font)

plt.show()

qzw2C.png

在Ubuntu上,你可以通过运行fc-cache -f -v /path/to/fonts/directory

我不确定在其他操作系统上是如何实现的,也不知道在其他类型的Unix上是如何通用的。

一旦您安装了字体以便操作系统了解它们,您就可以通过删除~/.cache/fontconfig和~/.cache/matplotlib中的文件,使matplotlib regenerate its fontList。

~/.cache/matplotlib/fontList.json文件提供了matplotlib所知道的所有字体的可读列表。在这里,您将发现如下条目:{

"weight": "bold",

"stretch": "normal",

"fname": "/usr/share/fonts/truetype/msttcorefonts/Comic_Sans_MS_Bold.ttf",

"_class": "FontEntry",

"name": "Comic Sans MS",

"style": "normal",

"size": "scalable",

"variant": "normal"

},

注意fname是底层ttf文件的路径,还有一个name属性。您可以通过ttf文件的路径specify the FontProperties object:font = font_manager.FontProperties(fname="/usr/share/fonts/truetype/msttcorefonts/Comic_Sans_MS_Bold.ttf")

或姓名:font = font_manager.FontProperties(family='Comic Sans MS',

weight='bold',

style='normal', size=16)

如果您不想在系统范围内安装字体,可以通过fname路径指定FontProperties对象,从而传递调用fc-cache的需要并处理~/.cache。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,我可以给您提供一些Python Matplotlib画图设置字体字体大小、刻度密度、线条样式等的方法。 1. 设置字体字体大小: 可以使用`rcParams`来设置全局字体字体大小,也可以在特定的对象上进行设置。例如: ```python import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'Times New Roman' plt.rcParams['font.size'] = 16 # 或者使用下面的方式进行设置: fig, ax = plt.subplots() ax.set_xlabel('X Label', fontsize=16, fontfamily='Times New Roman') ax.set_ylabel('Y Label', fontsize=16, fontfamily='Times New Roman') ``` 2. 设置刻度密度: `xticks`和`yticks`可以设置刻度的位置,`xticklabels`和`yticklabels`可以设置刻度标签的内容,`tick_params`可以设置刻度的样式,例如: ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 100) y = np.sin(x) fig, ax = plt.subplots() ax.plot(x, y) ax.set_xticks([0, 2, 4, 6, 8, 10]) ax.set_xticklabels(['0', '2', '4', '6', '8', '10'], fontsize=12) ax.set_yticks([-1, 0, 1]) ax.set_yticklabels(['-1', '0', '1'], fontsize=12) ax.tick_params(axis='both', which='major', length=10, width=2, labelsize=12) ax.tick_params(axis='both', which='minor', length=5, width=1, labelsize=10) ``` 3. 设置线条样式: 可以使用`plot`函数中的`linestyle`参数来设置线条样式,例如: ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) fig, ax = plt.subplots() ax.plot(x, y1, linestyle='-', linewidth=2, label='sin(x)') ax.plot(x, y2, linestyle='--', linewidth=2, label='cos(x)') ax.legend(loc='upper right', fontsize=12) ``` 以上是一些基本的设置方法,您可以根据具体需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值