Я создаю визуализацию с Python, которая включает tkinter, matplotlib и numpy. Я хотел бы визуализировать несколько numpy массивов в одном барх-сюжете. Так что я могу проанализировать все на этом одном графике. В моем предыдущем коде мне удалось сделать это только с помощью сюжетов. Но мне всегда приходилось комментировать два других сюжета. Можете ли вы помочь мне визуализировать эти шесть numpy массивов (Netflix_Beg / End, Youtube_Beg / End, Vimeo_Beg / End) в одном столбчатом графике?
Желаемый результат должен выглядеть следующим образом. Это я создал с помощью powerpoint и моего предыдущего кода.
Ниже приведен мой предыдущий код:
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
import tkinter as tk
import numpy as np
fig, ax = plt.subplots(3, 1, facecolor = "white")
#data
Netflix_Beg = np.array([1,4,500,1500,2800,2960,2700, 5,2000,2000,3100,4000,4150,4150])
Netflix_End = np.array([5,1000,1000,2100,3000,3150,3150, 20,50,600,3500,3800,3960,3700])
Youtube_Beg = np.array([2,5,600,2600,3900,3970,3800, 6,3000,3000,4200,5000,5260,5260])
Youtube_End = np.array([6,2000,2000,3200,4000,4260,4260, 30,60,700,4600,4900,4070,4800])
Vimeo_Beg = np.array([0,3,400,400,1700,1850,1600,4,1000,1000,2000,3000,3040,3040])
Vimeo_End = np.array([4,500,500,1000,2000,2040,2040, 10,40,500,2400,2700,2850,2600])
Netflix = ["Netflix {}".format(i) for i in range(len(Netflix_Beg))]
Ytb = ["Youtube {}".format(i) for i in range(len(Youtube_Beg))]
Vim = ["Vimeo {}".format(i) for i in range(len(Vimeo_Beg))]
#window
root = tk.Tk()
root.title("Overview")
#plot
Plot_Netflix = plt.barh(range(len(Netflix_Beg)), Netflix_End-Netflix_Beg+20,
left=Netflix_Beg,
color='#BDD7EE')
#Plot_Youtube = plt.barh(range(len(Youtube_Beg)), Youtube_End-Youtube_Beg+20,
# left=Youtube_Beg,
# color='#C5E0B4')
#
#Plot_Vimeo = plt.barh(range(len(Vimeo_Beg)), Vimeo_End-Vimeo_Beg+20,
# left=Vimeo_Beg,
# color="red",
# alpha=0.5)
plt.yticks(range(len(Netflix_Beg)), Netflix)
#plt.yticks(range(len(Youtube_Beg)), Ytb)
#plt.yticks(range(len(Vimeo_Beg)), Vim)
plt.tight_layout()
#plot in tkinter window
canvas = FigureCanvasTkAgg(fig, master = root)
canvas.draw()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True)
canvas._tkcanvas.pack(side = tk.TOP, fill = tk.BOTH, expand = True)
#plot toolbar
toolbar = NavigationToolbar2Tk(canvas, root)
toolbar.update()
root.mainloop()