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基础——数据分析考核(基础版
- 下一篇: 文档扫描OCR识别-1(python)