增加 matplotlib 字符串字体大小
Increment matplotlib string font size
我希望增加情节标题的字体大小,方法是将其从例如medium
到 large
.
我的图正在从 matplotlibrc .conf
文件中获取基本字体大小和修饰符。
这通常是这样表达的:
font.size : 8
axes.titlesize : medium
现在,对于我的一个情节,我想特别增加标题的字体大小。
如果这是一个数字(例如线宽),我可以这样做:
from matplotlib import rcParams
newsize = rcParams['lines.linewidth']*2
但这不会那么容易。
当然,我可以使用字典或一系列 elif
语句 - 但我在考虑 matplotlib,它知道如何解释这些字符串,也许还有一些函数可以增加它们。你知道这样的事吗?
编辑: 有人建议这将与其他问题重复。这个问题专门询问有关增加 "string font size" 的问题(正如我在问题标题中所写的那样)。这意味着手动将字体大小设置为某个整数不是一种选择(除非有一种方法可以将 matplotlibrc 的 small
或 medium
转换为整数——这对于这个问题也是独一无二的)。
所以问题似乎是:给定一个 "axes.titlesize"
rcParam,如何将标题大小设置为下一个更高的相对大小规范。
解决方案肯定取决于 "axes.titlesize"
中可能存在的值。例如,如果我们已经知道这些值只能是
'xx-small','x-small','small','medium','large','x-large'
之一,解决方案会很简单。一个人只会在所有项目的列表中选择下一个可能的项目。
import matplotlib.pyplot as plt
sizes = ['xx-small','x-small','small','medium','large','x-large','xx-large']
plt.rcParams["axes.titlesize"] = sizes[sizes.index(plt.rcParams["axes.titlesize"])+1]
一般情况下,"axes.titlesize"
可以是数字或任何有效大小的字符串,将通过以下方式处理:
import matplotlib.pyplot as plt
sizes = ['xx-small','x-small','small','medium','large','x-large','xx-large']
cs = plt.rcParams["axes.titlesize"]
try:
plt.rcParams["axes.titlesize"] = float(cs)*1.2
except:
if cs in ["larger", "smaller"]:
cs = cs[:5]
if cs in sizes[:-1]:
plt.rcParams["axes.titlesize"] = sizes[sizes.index(cs)+1]
elif cs == 'xx-large':
plt.rcParams["axes.titlesize"] = plt.rcParams["font.size"]*1.2**4
我希望增加情节标题的字体大小,方法是将其从例如medium
到 large
.
我的图正在从 matplotlibrc .conf
文件中获取基本字体大小和修饰符。
这通常是这样表达的:
font.size : 8
axes.titlesize : medium
现在,对于我的一个情节,我想特别增加标题的字体大小。 如果这是一个数字(例如线宽),我可以这样做:
from matplotlib import rcParams
newsize = rcParams['lines.linewidth']*2
但这不会那么容易。
当然,我可以使用字典或一系列 elif
语句 - 但我在考虑 matplotlib,它知道如何解释这些字符串,也许还有一些函数可以增加它们。你知道这样的事吗?
编辑: 有人建议这将与其他问题重复。这个问题专门询问有关增加 "string font size" 的问题(正如我在问题标题中所写的那样)。这意味着手动将字体大小设置为某个整数不是一种选择(除非有一种方法可以将 matplotlibrc 的 small
或 medium
转换为整数——这对于这个问题也是独一无二的)。
所以问题似乎是:给定一个 "axes.titlesize"
rcParam,如何将标题大小设置为下一个更高的相对大小规范。
解决方案肯定取决于 "axes.titlesize"
中可能存在的值。例如,如果我们已经知道这些值只能是
'xx-small','x-small','small','medium','large','x-large'
之一,解决方案会很简单。一个人只会在所有项目的列表中选择下一个可能的项目。
import matplotlib.pyplot as plt
sizes = ['xx-small','x-small','small','medium','large','x-large','xx-large']
plt.rcParams["axes.titlesize"] = sizes[sizes.index(plt.rcParams["axes.titlesize"])+1]
一般情况下,"axes.titlesize"
可以是数字或任何有效大小的字符串,将通过以下方式处理:
import matplotlib.pyplot as plt
sizes = ['xx-small','x-small','small','medium','large','x-large','xx-large']
cs = plt.rcParams["axes.titlesize"]
try:
plt.rcParams["axes.titlesize"] = float(cs)*1.2
except:
if cs in ["larger", "smaller"]:
cs = cs[:5]
if cs in sizes[:-1]:
plt.rcParams["axes.titlesize"] = sizes[sizes.index(cs)+1]
elif cs == 'xx-large':
plt.rcParams["axes.titlesize"] = plt.rcParams["font.size"]*1.2**4