首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib:文本集系列

Matplotlib:文本集系列
EN

Stack Overflow用户
提问于 2016-02-15 01:26:19
回答 2查看 1.5K关注 0票数 2

我想更改饼图的一个标签的字体和大小。字体名为'Berkelium‘,根据我的fontList.cache目录中的.matplotlib文件,Matplotlib可以加载它。

代码是

代码语言:javascript
复制
import matplotlib.pyplot as plt

count  = (1., 2., 3.)
labels = ('Text1', 'Text2', 'Text3')

pie = plt.pie(count, labels=labels)
pie[1][0].set_fontsize(24)
pie[1][0].set_family('Berkelium Type')

plt.axis('equal')
plt.draw()
plt.show()

到目前为止,更改字体大小是有效的。但是,它并没有改变字体本身。

我用一个简单的文本做了个测试

代码语言:javascript
复制
test = plt.text(0.5, 0.5, 'This is a test.')

都不是

代码语言:javascript
复制
test.set_family('serif')

nor

代码语言:javascript
复制
test.set_family('sans-serif')

对文本有任何影响。

所以我想知道我是不是在做一些概念上的错误。这是改变文本字体的正确方法吗?

更新:

我所做的正是这个职位的建议:

代码语言:javascript
复制
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(range(10))

prop = fm.FontProperties(fname='/home/sebastian/.local/share/font/kkberktp.ttf')
ax.set_title('This is some random font', fontproperties=prop, size=32)

plt.show()

因此,我得到了这个:

这不是我选择的字体。

是否有什么东西正在覆盖我的字体设置?

字体是可用的这里

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-15 21:00:30

解决了它: text.usetex必须是假的:

代码语言:javascript
复制
rc('text', usetex=False)
票数 -2
EN

Stack Overflow用户

发布于 2016-02-15 13:36:13

若要全局更改字体,可以使用rcParams设置此字体。将这一行放在matplotlib导入之后:

代码语言:javascript
复制
plt.rcParams['font.family'] = 'Berkelium Type'

要更改饼图的字体,可以使用textprops选项为pie

代码语言:javascript
复制
pie = plt.pie(count, labels=labels, textprops={'family':'Berkelium Type'})

若要只将字体更改为文本对象之一,可以使用update

代码语言:javascript
复制
pie[1][0].update({'family':'Berkelium Type'})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35400188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档