matplotlib:控制饼图字体颜色、线宽

mutmk8jj  于 2023-03-03  发布在  其他
关注(0)|答案(4)|浏览(168)

我使用一些简单的matplotlib函数来绘制饼图:

f = figure(...)
pie(fracs, explode=explode, ...)

但是,我找不到如何设置默认的字体颜色、线条颜色、字体大小--或者将它们传递给pie()。

clj7thdc

clj7thdc1#

聚会出现得有点晚,但我遇到了这个问题,不想改变我的rcParams。
通过保留创建饼图时返回的文本并使用matplotlib.font_manager适当修改它们,可以调整标签或自动百分比的文本大小。
您可以在此处阅读有关使用matplotlib.font_manager的详细信息:http://matplotlib.sourceforge.net/api/font_manager_api.html
API中列出了内置字体大小;size:'xx-small'、'x-small'、'small'、'medium'、'large'、'x-large'、'xx-large'的相对值或绝对字体大小,例如12

from matplotlib import pyplot as plt
from matplotlib import font_manager as fm

fig = plt.figure(1, figsize=(6,6))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
plt.title('Raining Hogs and Dogs')

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15,30,45, 10]

patches, texts, autotexts = ax.pie(fracs, labels=labels, autopct='%1.1f%%')

proptease = fm.FontProperties()
proptease.set_size('xx-small')
plt.setp(autotexts, fontproperties=proptease)
plt.setp(texts, fontproperties=proptease)

plt.show()

bvjveswy

bvjveswy2#

全局默认颜色、线宽、大小等可以使用rcParams字典进行调整:

import matplotlib
matplotlib.rcParams['text.color'] = 'r'
matplotlib.rcParams['lines.linewidth'] = 2

完整的参数列表可以在这里找到。
您还可以在绘制饼图后调整线宽:

from matplotlib import pyplot as plt
fig = plt.figure(figsize=(8,8))
pieWedgesCollection = plt.pie([10,20,50,20],labels=("one","two","three","four"),colors=("b","g","r","y"))[0] #returns a list of matplotlib.patches.Wedge objects
pieWedgesCollection[0].set_lw(4) #adjust the line width of the first one.

不幸的是,我找不到一种方法来调整饼图方法或Wedge对象中饼图标签的字体颜色或大小。axes.py(matplotlib 99.1的第4606行)它们是用Axes.text方法创建的。这个方法可以接受一个颜色和大小参数,但目前没有使用。如果不编辑源代码,您唯一的选择可能是如上所述全局地执行它。

az31mfrm

az31mfrm3#

matplotlib.rcParams['font.size'] = 24

更改饼图标签的字体大小

roejwanj

roejwanj4#

要在饼图中指定线宽和颜色,请在pie()中添加以下内容:楔形支撑={“线宽”:2.0,“边缘颜色”:'白色'}:
plt.pie([10,20,50,20],labels=("one","two","three","four"),colors=("b","g","r","y"), wedgeprops={'linewidth': 2.0, 'edgecolor': 'white'})

相关问题