我试图从我的图形增加我的Y字体,但它不起作用.

我的代码是:

import tkinter as tk 
import matplotlib.pyplot as plt 
from matplotlib.figure import Figure 
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg 
from matplotlib import animation 
import random

# Create the Tkinter window root = tk.Tk() root.geometry('400x100')
fig1, b1 = plt.subplots(figsize=(10, 0.5), dpi = 80)
#b1 = fig1.add_subplot(111)


fig2, b2 = plt.subplots(figsize= (10, 0.5), dpi = 80)
#b2 = fig2.add_subplot(111)


def grafico_1 (i):
    global b1
    global nume
    global valu
    global fig1
    global y_fix
    global x

    x = []
    y_fix = []
    ws = ['WIRE']

    for valu in range (1, 6):
        nume = random.randint(1, 10)
        x.append(nume)
    #print(x)

    #Primeira camada do grafico 
    if int(x[0]) < 3:
        y_fix.append(int(x[0]), )
        #print(f'Lista de y_n ,e {y_n}')
        b1.barh(ws, int(x[0]), color = 'green')
        

    if int(x[0]) >= 3 and int(x[0]) < 6:
        y_fix.append(x[0])
        b1.barh(ws, int(x[0]), color='yellow')
        

    if int(x[0]) >= 6:
        y_fix.append(x[0])
        b1.barh(ws, int(x[0]), color='red')
        

    #Segunda camada:
    for c in x[1:]:
        if int(c) < 3:
            b1.barh(ws, int(c), color= 'green', left=y_fix)
            y_fix.append(int(c))
            jump = sum(y_fix)
            y_fix = []
            y_fix.append(jump)
            
            
        if int(c) > 3 and int(c) < 5:
            b1.barh(ws, int(c), color='yellow', left= y_fix)
            y_fix.append(int(c))
            jump = sum(y_fix)
            y_fix = []
            y_fix.append(jump)
            

        if int(c) >= 5:
            b1.barh(ws, int(c), color='red', left= y_fix)
            y_fix.append(int(c))
            jump = sum(y_fix)
            y_fix = []
            y_fix.append(jump) 



def grafico_2 (i2):
    global b2
    global nume2
    global valu2
    global fig2
    global y_fix2
    global x2

    x2 = []
    y_fix2 = []
    ws2 = ['line 2']

    for valu2 in range (1, 6):
        nume2 = random.randint(1, 10)
        x2.append(nume2)
    #print(f'Grafico 2 {x2}')
   

    #Primeira camada do grafico 
    if int(x2[0]) < 3:
        y_fix2.append(int(x2[0]))
        #print(f'Lista de y_n ,e {y_n}')
        b2.barh(ws2, int(x2[0]), color = 'green')

    if int(x2[0]) >= 3 and int(x2[0]) < 6:
        y_fix2.append(x2[0])
        b2.barh(ws2, int(x2[0]), color = 'yellow' )

    if int(x2[0]) >= 6:
        y_fix2.append(x2[0])
        b2.barh(ws2, int(x2[0]), color= 'red' )

    #Segunda camada:
    for c2 in x2[1:]:

        if int(c2) < 3:
            b2.barh(ws2, int(c2), color= 'green', left=y_fix2)
            y_fix2.append(int(c2))
            jump2 = sum(y_fix2)
            y_fix2 = []
            y_fix2.append(jump2)
            
        if int(c2) > 3 and int(c2) < 5:
            b2.barh(ws2, int(c2), color='yellow', left= y_fix2)
            y_fix2.append(int(c2))
            jump2 = sum(y_fix2)
            y_fix2 = []
            y_fix2.append(jump2)

        if int(c2) >= 5:
            b2.barh(ws2, int(c2), color='red', left= y_fix2)
            y_fix2.append(int(c2))
            jump2 = sum(y_fix2)
            y_fix2 = []
            y_fix2.append(jump2)


    #plt.show()

ani1 = animation.FuncAnimation(fig1, grafico_1, interval = 3000, frames=100) ani2 = animation.FuncAnimation(fig2, grafico_2, interval = 3000, frames=100)

# Embed the figures into Tkinter using FigureCanvasTkAgg canvas1 = FigureCanvasTkAgg(fig1, master=root) canvas1.get_tk_widget().place(x= 300, y= 460)

canvas2 = FigureCanvasTkAgg(fig2, master=root) canvas2.get_tk_widget().place(x= 300, y = 530)

root.mainloop()

推荐答案

将数据添加到轴之后,但在将图形嵌入到Tkinter画布之前,添加一行以设置y轴标签的字体大小,如下所示:

b1.set_yticklabels(b1.get_yticklabels(), fontsize=21)

如果这不起作用,您可以判断两件事:

  1. print(dir(b1))以判断哪些方法可用于它.如果您意外地覆盖或修改了代码中与您显示的部分不同的b1,可能不再识别它是一个轴,在这种情况下,您将遇到更多关于应该可用的方法的问题.
  2. print(matplotlib.__version__)查看您是否使用的是较旧版本的matplotlib,其中某些方法不可用.

一种快速的解决方法是改用下面这行代码,它应该也适用于旧版本的matplotlib:

b1.tick_params(axis='y', labelsize=21)

Python相关问答推荐

如何在句子之间添加空白但忽略链接?

Pandas 密集排名具有相同值,按顺序排列

如何才能将每个组比上一组增加N %?

绘制系列时如何反转轴?

机器人与Pyton Minecraft服务器状态不和

过滤绕轴旋转的螺旋桨

请从Python访问kivy子部件的功能需要帮助

使文本输入中的文本与标签中的文本相同

rame中不兼容的d类型

带条件计算最小值

按列分区,按另一列排序

运行终端命令时出现问题:pip start anonymous"

使用@ guardlasses. guardlass和注释的Python继承

Stacked bar chart from billrame

如何从数据库上传数据到html?

如何设置视频语言时上传到YouTube与Python API客户端

利用Selenium和Beautiful Soup实现Web抓取JavaScript表

将pandas导出到CSV数据,但在此之前,将日期按最小到最大排序

numpy.unique如何消除重复列?

搜索按钮不工作,Python tkinter