大数据理论课(第三节----菜单栏制作+直方图绘制+pandas的使用)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/jjsjsjjdj/article/details/102689993

一、如何创建菜单栏

import socket
import threading
import tkinter as tk
import tkinter.messagebox
import tkinter.scrolledtext
import tkinter.filedialog
from tkinter import *


#-----------------一、创建窗口------------------------
win=tk.Tk()
win["height"]=400
win["width"]=600
filename=""  #定义空文件名

#-----------------二、功能定义区----------------------
def openfun():
    global filename
    filename=tk.filedialog.askopenfilename(title="openfile")#访问文件夹
    if filename!="":          #当文件不为0时,读取文件夹
        fff=open(filename,"r").read()
        txtCont.insert(END,fff)
    pass

def savefun():
    pass

def saveasfun():
    pass

def closefun():
    pass

def copyfun():
    pass
    
def pastefun():
    pass

def cutfun():
    pass


#-------------------三、添加组件------------------------

#1.定义菜单栏
menu1=tk.Menu(win)

#2.定义子菜单栏
submenu=tk.Menu(menu1,tearoff=0)

#3.向子菜单栏中添加选项
#---------------------------------------------------------------------
submenu.add_command(label="Open",command=openfun)   #1.向子菜单添加选项
submenu.add_separator()                             #2.定义分割线
submenu.add_command(label="Save",command=openfun)  
submenu.add_separator()
submenu.add_command(label="SaveAs",command=openfun)
submenu.add_separator()
submenu.add_command(label="Close",command=openfun)

#-----------------------------------------------------------------------
submenu2=tk.Menu(menu1,tearoff=0)

submenu2.add_command(label="Copy",command=openfun)
submenu2.add_separator()
submenu2.add_command(label="Cut",command=openfun)
submenu2.add_separator()
submenu2.add_command(label="Paste",command=openfun)

#------------------------------------------------------------------------
#4.向菜单栏添加到子菜单栏
menu1.add_cascade(label="File",menu=submenu)
menu1.add_cascade(label="Edit",menu=submenu2)

#5.将菜单显示到窗口
win.config(menu=menu1)#把menu1这个菜单对象作为win窗口的主菜单

#6.给窗口添加滑动面板
txtCont=tk.scrolledtext.ScrolledText(win,wrap=tk.WORD)
txtCont.pack(fill=tk.BOTH)

win.mainloop()

二、创建直方图

1.叠加bar图

import numpy as np
import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]

#--------一、数据-----------------
x_data=[1,2,3,4]
y_data=[150,550,100,600]
y_data2=[100,650,300,200]

#--------二、绘制直方图----------------------
import matplotlib.pyplot as plt
plt.bar(x=range(len(x_data)),height=y_data,Label="C语言基础",color="steelblue",alpha=0.6)    #  x(位置)  y(高度)  名称   颜色   深浅  
plt.bar(x=np.arange(len(x_data)),height=y_data2,bottom=y_data,Label="java基础",color="indianred",alpha=0.6)#bottom 将y_date放在底部

在这里插入图片描述

2.并排的bar图

import numpy as np
import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]

bar_width=0.3

#--------一、数据-----------------
x_data=[1,2,3,4]
y_data=[150,550,100,600]
y_data2=[100,650,300,200]
y_data3=[60,50,350,220]

#--------二、绘制直方图----------------------
import matplotlib.pyplot as plt
plt.bar(x=np.arange(len(x_data)),width=bar_width,height=y_data,Label="C语言基础",color="blue",alpha=0.6)   #width 条形图的宽度
plt.bar(x=np.arange(len(x_data))+bar_width,width=bar_width,height=y_data2,Label="java基础",color="red",alpha=0.6)
plt.bar(x=np.arange(len(x_data))+bar_width*2,width=bar_width,height=y_data3,Label="java基础",color="green",alpha=0.6)
plt.show()

在这里插入图片描述

三、pandas读取数据的三种格式

import pandas as pd
#-----------------------一、读取table----------------------------------
order=pd.read_table(r"G:\大数据实验数据库\3.大数据实验数据\meal_order_info.csv",sep=",",encoding="GBK")

#-----------------------二、读取csv----------------------------------
order=pd.read_csv(r"G:\大数据实验数据库\3.大数据实验数据\meal_order_info.csv",sep=",",header=None,encoding="GBK")
order.to_csv("c:/ab.csv",sep=",",index=False,header=False)  #index不展示横向索引,header不展示纵向索引
#-----------------------三、读取execel----------------------------------
userlist=pd.read_excel("G:/大数据实验数据库/3.大数据实验数据/users.xlsx")
print(userlist)

四、pandas读取execel的具体操作

import pandas as pd
detail=pd.read_excel("G:/大数据实验数据库/3.大数据实验数据/meal_order_detail.xlsx",sep=",")

#-----------------一、矩阵信息-------------------------
print(detail.ndim)    #返回矩阵的维数
print(detail.shape)   #返回是几乘几的矩阵
print(detail.size)    #返回矩阵的大小字节数

#-----------------二、列的信息-------------------------
print(detail.columns) #返回每一列的名称
print(detail.dtypes)  #返回每一列的数据类型
print(detail.values)  #返回每一列的值

#-----------------三、具体的值-------------------------
#1.找某一个值(找出第1列第1行的数据的两种方法)
print(detail.detail_id[0])     
print(detail["detail_id"][0])

#2.找一系列值
detail["detail_id"][:10]      #(找出第1列1到10行的数据)     
detail["detail_id"][130:100:-1]  #(倒序找出第1列130行到101行的数据)  


#3.找特定的某一个值
t=detail.columns[2]     #找出第三列
detail[t][100:130]      #再找出第三列,100-129的行的所有数据

猜你喜欢

转载自blog.csdn.net/jjsjsjjdj/article/details/102689993