如何將圖例Matplotlib TKinter
問題內容
我正在嘗試在圖形中創建圖例,但當我使用 legend() 時它不起作用。我不知道還能有什么。我看到了很多關于它的信息,我也在做同樣的事情,但它一直不起作用。你能幫我一下嗎?
在我的代碼下面:
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()
正確答案
進行一些更改并指出錯誤后,這是另一個代碼,這次它可以工作并顯示圖例:
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()
證明:
聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至201542412@QQ.com舉報,一經查實,本站將立刻刪除。
相關推薦
-
如何根據輸入多次運行一行代碼?
問題內容使用 python,我試圖找到一種更快的方法來根據輸入多次運行 randint,而不必寫出每個輸入的可能性。這是用于桌面游戲的骰子滾輪。代碼如下import randomfrom random
-
使用PyCharm簡化項目打包:簡單操作使你的代碼成為獨立應用
利用PyCharm輕松打包項目:簡單操作讓你的代碼成為獨立應用在Python的開發過程中,我們經常會使用一些外部庫和模塊來幫助我們實現功能。但是當我們將代碼分享給其他人使用時,他們可能沒有安裝我們使用
-
如何使用PyCharm將代碼打包成可執行文件:項目打包技巧詳解
PyCharm項目打包技巧:教你如何將代碼打包為可執行文件在軟件開發過程中,將代碼打包為可執行文件是一個非常重要的步驟。它可以讓我們的應用程序更加便捷地在不同的機器上運行,同時也可以保護我們的代碼不被
-
提高效率!利用PyCharm批量注釋技巧快速優化代碼
解放雙手!PyCharm批量注釋技巧助你快速優化代碼導語:在日常的編程工作中,我們經常需要處理大量的代碼注釋。手動逐行注釋代碼不僅費時費力,還容易出錯。為了提高編程效率,讓我們來了解一下PyCharm
-
深入解析PyCharm中文設置:提升代碼編輯體驗
PyCharm是一款功能強大的Python集成開發環境(IDE),被廣泛地應用于Python開發中。它不僅提供了豐富的代碼編輯功能,還具備智能提示、調試、版本管理等的強大工具。而在PyCharm中,中















