繁体   English   中英

画布中的图形

[英]Graphs in Canvas

我正在尝试在Canvas中显示折线图(字符串和数字,如数组中所示)。 我是从该论坛的其他问题中获得此代码的,试图根据自己的要求进行修改。请有人指导我。

import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({"Week": ['Week1','Week2','Week3','Week4','Week5'],
               "App1" : [2.6,3.4,3.25,2.8,1.75],
               "App2" : [2.5,2.9,3.0,3.3,3.4],
                "App3" : [1.6,2.4,1.25,5.8,6.75]})
df.plot(x="Week", y=["App1", "App2", "App3"])
plt.show()

线形图

如果有人在找,这是一个。

    # --- matplotlib ---
    import matplotlib
    matplotlib.use('TkAgg') # choose backend
    from tkinter import messagebox

    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, 
    NavigationToolbar2TkAgg
    from matplotlib.pyplot import Figure

   from matplotlib import pyplot as plt    
   # --- other ---
   import tkinter as tk
   import pandas as pd

   # --- GUI ---

   root = tk.Tk()

   # top frame for canvas and toolbar - which need `pack()` layout manager
   top = tk.Frame(root)
   top.pack()

   # bottom frame for other widgets - which may use other layout manager 
   bottom = tk.Frame(root)
   bottom.pack()

    # create figure
   fig = matplotlib.pyplot.Figure()

    # create matplotlib canvas using `fig` and assign to widget `top`
    canvas = FigureCanvasTkAgg(fig, top)

    # get canvas as tkinter widget and put in widget `top`
    canvas.get_tk_widget().pack()



    canvas._tkcanvas.pack()

     # --- plot ---

    data = {"Week": ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],
               "App1" : [2.6,3.4,3.25,2.8,1.75,5,2],
               "App2" : [2.5,2.9,3.0,3.3,3.4,5,3],
                "App3" : [1.6,15,1.25,5.8,6.75,6,4]
    }
     new_df = pd.DataFrame(data)

     ax = fig.add_subplot(111)

     fig.suptitle('Graph Title', fontsize=12)

     new_df.plot(x="Week", y=["App1", "App2", "App3"],ax=ax)

     def on_closing():
         root.destroy()

     root.protocol("WM_DELETE_WINDOW", on_closing)

     root.lift()
     root.attributes('-topmost',True)
     root.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM