当前位置: 首页 > 面试题库 >

如何使用mpl.rcParams在matplotlib中加载.ttf文件?

宋飞文
2023-03-14
问题内容

我有一个启动的matplotlib脚本…

import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

mpl.rcParams['xtick.labelsize']=16 
...

我已经使用了命令

fm.findSystemFonts()

获取我系统上字体的列表。我发现了要使用的.ttf文件的完整路径,

'/usr/share/fonts/truetype/anonymous-pro/Anonymous Pro BI.ttf'

我尝试使用以下命令成功使用此字体

mpl.rcParams['font.family'] = 'anonymous-pro'

mpl.rcParams['font.family'] = 'Anonymous Pro BI'

两者都返回类似

/usr/lib/pymodules/python2.7/matplotlib/font_manager.py:1218: UserWarning: findfont: Font family ['anonymous-pro'] not found. Falling back to Bitstream Vera Sans

我可以使用mpl.rcParams词典在绘图中设置此字体吗?

编辑

阅读更多内容后,看来这是从.ttf文件确定字体系列名称的普遍问题。在linux或python中这样做容易吗?

此外,我尝试添加

mpl.use['agg']
mpl.rcParams['text.usetex'] = False

没有任何成功


问题答案:

指定字体系列:

如果您只知道ttf的路径,则可以使用以下get_name方法发现字体系列名称:

import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager

path = '/usr/share/fonts/truetype/msttcorefonts/Comic_Sans_MS.ttf'
prop = font_manager.FontProperties(fname=path)
mpl.rcParams['font.family'] = prop.get_name()
fig, ax = plt.subplots()
ax.set_title('Text in a cool font', size=40)
plt.show()

通过路径指定字体:

import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager

path = '/usr/share/fonts/truetype/msttcorefonts/Comic_Sans_MS.ttf'
prop = font_manager.FontProperties(fname=path)
fig, ax = plt.subplots()
ax.set_title('Text in a cool font', fontproperties=prop, size=40)
plt.show()


 类似资料:
  • 问题内容: 从Internet的一些示例中,我做了下面的测试代码。有用! …但是,如果我重新加载页面,则饼图将使用相同的图像进行绘制。每次重新加载页面时,某些部件的颜色都会变深。当我重新启动开发服务器时,它将被重置。如何在Django中使用Matplotlib正确绘制?看起来好像还记得一些图纸… 源views.py(让urls.py链接到它): 我正在使用Django 1.0.1和Python 2

  • 我一直在尝试使用Spark中的加载本地文件。 我已经读过[问题]:如何在sc.textfile中加载本地文件,而不是HDFS Centos 7.0上中有本地文件 使用时,出现如下错误。 16/12/27 12:15:56警告TaskSetManager:stage 5.0中丢失任务0.0(TID 36,):java.io.FileNotFoundException:File File:/home/

  • 问题内容: 我想将Spark参数(例如输入文件,输出文件)存储到Java属性文件中,然后将该文件传递到Spark Driver中。我正在使用spark- submit提交作业,但是找不到参数来传递属性文件。你有什么建议吗? 问题答案: 在这里,我找到了一种解决方案: props文件 :(mypropsfile.conf)// 注意:密钥的前缀为“ spark”。 否则道具将被忽略。 发射 如何调用

  • 问题内容: 我在玩反射,我想做点东西来加载一个类并打印该类中所有字段的名称。我制作了一个小型的hello world类型的类来检查一些东西: 基于以上所述,我得出两个结论: 它存在于/home/kent/eclipsews/SmallExample/bin/IndependentClass.class 有用!(因此它必须是可以由类加载器加载的正确的.class文件) 然后使用反射的代码:(标记导致

  • 问题内容: 是否可以使用Javascript将CSS样式表导入html页面?如果是这样,怎么办? 附言:JavaScript将托管在我的网站上,但我希望用户能够放入其网站的标签,并且它应该能够将托管在我的服务器上的CSS文件导入当前网页。(css文件和javascript文件都将托管在我的服务器上)。 问题答案: 这是这样做的“老派”方法,希望可以在所有浏览器上使用。从理论上讲,不幸的是,您将使用

  • 绞尽脑汁,但似乎找不到解决方案。我有一个位于Azure存储blob上的. ttf字体文件,用于我的Azure应用服务站点上的自定义字体。我收到此文件的404“资源未找到”错误。 在阅读了大量关于这方面的文档之后,我似乎需要在web上添加几行代码,以创建一个新的“mimetype”。配置文件。Azure的旧版本在“扩展”或“应用程序设置”中有此功能。 其他人在Kudu的“Debug”选项下显示了这样