我在Matplotlib中创建一个图形,如下所示:

from matplotlib import pyplot as plt

fig = plt.figure()
plt.plot(data)
fig.suptitle('test title')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
fig.savefig('test.jpg')

我想为图形标题和轴标签指定字体大小。我需要这三种字体大小都不同,所以设置全局字体大小(mpl.rcParams['font.size']=x)不是我想要的。如何分别设置图形标题和轴标签的字体大小?


当前回答

更改字体大小的另一种解决方案是更改填充。Python保存PNG时,可以使用打开的对话框更改布局。轴之间的间距,如果您愿意,可以在这个阶段更改填充。

其他回答

您也可以通过rcParams字典全局执行此操作:

import matplotlib.pylab as pylab
params = {'legend.fontsize': 'x-large',
          'figure.figsize': (15, 5),
         'axes.labelsize': 'x-large',
         'axes.titlesize':'x-large',
         'xtick.labelsize':'x-large',
         'ytick.labelsize':'x-large'}
pylab.rcParams.update(params)

7(最佳解决方案)

 from numpy import*
 import matplotlib.pyplot as plt
 X = linspace(-pi, pi, 1000)

class Crtaj:

    def nacrtaj(self,x,y):
         self.x=x
         self.y=y
         return plt.plot (x,y,"om")

def oznaci(self):
    return plt.xlabel("x-os"), plt.ylabel("y-os"), plt.grid(b=True)

6(稍差的解决方案)

from numpy import*
M = array([[3,2,3],[1,2,6]])
class AriSred(object):
    def __init__(self,m):
    self.m=m
    
def srednja(self):
    redovi = len(M)
    stupci = len (M[0])
    lista=[]
    a=0
    suma=0
    while a<stupci:
        for i in range (0,redovi):
            suma=suma+ M[i,a]
        lista.append(suma)
        a=a+1
        suma=0
    b=array(lista) 
    b=b/redovi
    return b



OBJ = AriSred(M)
sr = OBJ.srednja()

如果您更习惯于使用ax对象进行绘图,您可能会发现ax.xaxis.label.set_size()更容易记住,或者至少更容易在ipython终端中使用选项卡找到。之后似乎需要重新绘制操作才能看到效果。例如:

import matplotlib.pyplot as plt

# set up a plot with dummy data
fig, ax = plt.subplots()
x = [0, 1, 2]
y = [0, 3, 9]
ax.plot(x,y)

# title and labels, setting initial sizes
fig.suptitle('test title', fontsize=12)
ax.set_xlabel('xlabel', fontsize=10)
ax.set_ylabel('ylabel', fontsize='medium')   # relative to plt.rcParams['font.size']

# setting label sizes after creation
ax.xaxis.label.set_size(20)
plt.draw()

我不知道有什么类似的方法可以在创建字幕后设置字幕大小。

处理标签、标题等文本的函数接受与matplotlib.text.text相同的参数。对于字体大小,可以使用size/fontsize:

from matplotlib import pyplot as plt    

fig = plt.figure()
plt.plot(data)
fig.suptitle('test title', fontsize=20)
plt.xlabel('xlabel', fontsize=18)
plt.ylabel('ylabel', fontsize=16)
fig.savefig('test.jpg')

对于全局设置标题和标签大小,mpl.rcParams包含axes.titlesize和axes.labelsize。(从页面):

axes.titlesize      : large   # fontsize of the axes title
axes.labelsize      : medium  # fontsize of the x any y labels

(据我所知,没有办法分别设置x和y标签大小。)

我看到axes.titlesize不影响suptitle。我想,你需要手动设置。

图书馆

将numpy导入为np

将matplotlib.pyplot作为plt导入

创建数据集

高度=[3,12,5,18,45]

钢筋=('A'、'B'、'C'、'D'、'E')

x_pos=np.排列(长度(巴))

创建条形图并选择颜色

plt.bar(x_pos,高度,颜色=(0.5,0.1,0.5,0.6))

添加标题和轴名称

plt.title(“我的标题”)

plt.xlabel(“类别”)

plt.ylabel(“值”)

在x轴上创建名称

plt.xticks(x位置,条)

显示绘图

plt.show()