Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie eine Legende in Matplotlib TKinter

So konvertieren Sie eine Legende in Matplotlib TKinter

WBOY
WBOYnach vorne
2024-02-22 14:10:03526Durchsuche

如何将图例Matplotlib TKinter

Frageninhalt

Ich versuche, eine Legende in einem Diagramm zu erstellen, aber es funktioniert nicht, wenn ich legend() verwende. Ich weiß nicht, was sonst noch. Ich habe viele Informationen darüber gesehen und mache das Gleiche, aber es hat nicht funktioniert. Kannst du mir helfen?

Unter meinem Code:

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')


fig2, avail = plt.subplots(figsize=(10,7), dpi=60, facecolor= '#e9eef0',)
avail.tick_params(axis='y', labelsize=0)#Formatar a fonte yLabel
avail.set_ylabel('FOLLOWING THE PRODUCTION', fontsize=20)
avail.set_xlabel('TIME (minute)', fontsize=20)
avail.legend(['ON','PLANNED','STOP'])
   
    
stop = [30]
on = [40]
planned = [70]  
x = 1
w = 0.2


avail.barh(x + w, on ,w, color='#22e3e3', edgecolor = 'black', linewidth = 2)
avail.barh(x, planned , w ,color='#05337d', edgecolor = 'black', linewidth = 2)
avail.barh(x - w, stop, w, color = '#c95924', edgecolor = 'black', linewidth = 2)


#criando figura para plotar dentro do TKinter
canvas_avail = FigureCanvasTkAgg(fig2, master=root)
canvas_avail.get_tk_widget().place(x= 280, y= 150)

root.mainloop()

Richtige Antwort


Nachdem ich einige Änderungen vorgenommen und auf die Fehler hingewiesen habe, ist hier ein weiterer Code und dieses Mal funktioniert er und zeigt die Legende:

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

root = tk.Tk()
root.geometry('600x450')

fig2, avail = plt.subplots(figsize=(10,7), dpi=60, facecolor='#e9eef0',)
avail.tick_params(axis='y', labelsize=0)
avail.set_ylabel('FOLLOWING THE PRODUCTION', fontsize=20)
avail.set_xlabel('TIME (minute)', fontsize=20)

stop = [30]
on = [40]
planned = [70]
x = 1
w = 0.2

avail.barh(x + w, on, w, color='#22e3e3', edgecolor='black', linewidth=2)
avail.barh(x, planned, w, color='#05337d', edgecolor='black', linewidth=2)
avail.barh(x - w, stop, w, color='#c95924', edgecolor='black', linewidth=2)

# Legend added after creating bars
avail.legend(['ON', 'PLANNED', 'STOP'])

#criando figura para plotar dentro do TKinter
canvas_avail = FigureCanvasTkAgg(fig2, master=root)
canvas_avail.get_tk_widget().place(x=10, y=0)

root.mainloop()

Beweis:

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie eine Legende in Matplotlib TKinter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen