Python基础——数据分析考核(图形化版本)
生活随笔
收集整理的這篇文章主要介紹了
Python基础——数据分析考核(图形化版本)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
環境聲明:
如果沒有的預先:【pip install *******】
或
【ALT】+【回車】
import csv import numpy as np import matplotlib.pyplot as plt呈現效果:
GetRandomInfo.py:
import randomdef getClassName():randomClass = ("天字一號", "地字一號", "玄字一號", "黃字一號", "東宮正品")return randomClass[int(random.random() * len(randomClass))]def getName():"""隨機姓名"""randomNames = ("華", "韋", "覃", "琴", "湘", "", "錢", "彭", "鄧" "張", "王", "里", "趙", "趙", "李", "春", "夢", "星", "二", "宿", "管", "土", "生","風", "胡")return str.format("{0}{1}{2}", randomNames[int(random.random() * len(randomNames))],randomNames[int(random.random() * len(randomNames))],randomNames[int(random.random() * len(randomNames))])def getSex():"""隨機性別"""sex = ("男", "男", "女")return sex[int(random.random() * 3)]def getSubJectName():"""隨機科目"""randomClass = ("java", "python", "C#", "php", "go")return randomClass[int(random.random() * len(randomClass))]def getResults():"""隨機成績"""ra = random.randint(0, 10)if ra == 1:return int(random.random() * 21)+80return int(random.random() * 21)+70def GetRandomInfo():"""獲取500條隨機信息"""data = []for index in range(1, 501):strInfo = str.format("{0} {1} {2} {3} {4} {5}", index, getClassName(), getName(), getSex(), getSubJectName(),getResults())data.append(strInfo.split(","))return dataWriteInfo.py
import csv import GetRandomInfo# 文件獲取 file = open('info.csv', 'w+', encoding="utf-8") # 寫入操作 writer = csv.writer(file)# 寫入多行記錄 writer.writerows(GetRandomInfo.GetRandomInfo()) # 刷新文件 file.flush() # 關閉文件流 file.close()ReadInfo.py
import csv import numpy as np import matplotlib.pyplot as plt# 文件獲取 file = open('info.csv', 'r', encoding="utf-8") # 內容讀取 list1 = csv.reader(file) # 記錄每科成績 boyJavaCount = 0 boyJavaResult = 0 girlJavaCount = 0 girlJavaResult = 0 boyPythonCount = 0 boyPythonResult = 0 girlPythonCount = 0 girlPythonResult = 0 boyC_Count = 0 boyC_Result = 0 girlC_Count = 0 girlC_Result = 0 boyPHPCount = 0 boyPHPResult = 0 girlPHPCount = 0 girlPHPResult = 0 boyGoCount = 0 boyGoResult = 0 girlGoCount = 0 girlGoResult = 0# 信息遍歷 for line in list1:if len(line) != 0:for row in line:arr = row.split(" ")if arr[3] == "男":if arr[4] == "java":boyJavaCount += 1boyJavaResult += int(arr[5])elif arr[4] == "python":boyPythonCount += 1boyPythonResult += int(arr[5])elif arr[4] == "C#":boyC_Count += 1boyC_Result += int(arr[5])elif arr[4] == "php":boyPHPCount += 1boyPHPResult += int(arr[5])elif arr[4] == "go":boyGoCount += 1boyGoResult += int(arr[5])else:if arr[4] == "java":girlJavaCount += 1girlJavaResult += int(arr[5])elif arr[4] == "python":girlPythonCount += 1girlPythonResult += int(arr[5])elif arr[4] == "C#":girlC_Count += 1girlC_Result += int(arr[5])elif arr[4] == "php":girlPHPCount += 1girlPHPResult += int(arr[5])elif arr[4] == "go":girlGoCount += 1girlGoResult += int(arr[5]) # 繪圖 # 用于累計寬度坐標 x1 = np.arange(5) # X軸信息 x = ['Java', 'Python', 'C#', 'PHP', 'Go'] # 男孩各科目平均值信息 boy = [boyJavaResult / boyJavaCount,boyPythonResult / boyPythonCount,boyC_Result / boyC_Count,boyPHPResult / boyPHPCount,boyGoResult / boyGoCount] # 女孩各科目平均值信息 girl = [girlJavaResult / girlJavaCount,girlPythonResult / girlPythonCount,girlC_Result / girlC_Count,girlPHPResult / girlPHPCount,girlGoResult / girlGoCount] # 寬度 bar_width = 0.25 # 寫入男孩信息 plt.bar(x, boy, bar_width) # 寫入女孩信息 plt.bar(x1 + bar_width, girl, bar_width) # 一些樣式 plt.legend(labels=["boy", "girl"], loc="upper left") # 標題 plt.title("results") # 展示 plt.show()好好復習,準備考試哦。
總結
以上是生活随笔為你收集整理的Python基础——数据分析考核(图形化版本)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础——数据分析考核(基础版
- 下一篇: Java-Web机试练习题一、后台管理系