我想更改饼图的一个标签的字体和大小。字体名为'Berkelium‘,根据我的fontList.cache目录中的.matplotlib文件,Matplotlib可以加载它。
代码是
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()到目前为止,更改字体大小是有效的。但是,它并没有改变字体本身。
我用一个简单的文本做了个测试
test = plt.text(0.5, 0.5, 'This is a test.')都不是
test.set_family('serif')nor
test.set_family('sans-serif')对文本有任何影响。
所以我想知道我是不是在做一些概念上的错误。这是改变文本字体的正确方法吗?
更新:
我所做的正是这个职位的建议:
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()因此,我得到了这个:

这不是我选择的字体。
是否有什么东西正在覆盖我的字体设置?
字体是可用的这里。
发布于 2016-02-15 21:00:30
解决了它: text.usetex必须是假的:
rc('text', usetex=False)发布于 2016-02-15 13:36:13
若要全局更改字体,可以使用rcParams设置此字体。将这一行放在matplotlib导入之后:
plt.rcParams['font.family'] = 'Berkelium Type'要更改饼图的字体,可以使用textprops选项为pie
pie = plt.pie(count, labels=labels, textprops={'family':'Berkelium Type'})若要只将字体更改为文本对象之一,可以使用update
pie[1][0].update({'family':'Berkelium Type'})https://stackoverflow.com/questions/35400188
复制相似问题