【无标题】python读入文件并生成图

读取文件并画图

要点:将读入的数据存储到列表,通过列表得到数据

软件:pycharm

#subject:init time_table weekly and plot it
#name:cheng
#time:2022-4-16
#拓展实验第二次实验

import random
from pathlib import Path
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
import  numpy as np

def time_init():
    for times in range(7):
        learn_time=random.randint(0,24)
        sleep_time=random.randint(0,24-learn_time)
        list=[learn_time,sleep_time,24-sleep_time-learn_time]
        timelist.extend([list])

#初始化时间列表并存入文件
timelist = [['学习时间', '睡觉时间', '其他时间']]
time_init()
print(timelist)
file=open('191491531.txt',mode='w+',encoding='gbk')
for row in timelist:
    rowtxt='{} {} {}'.format(row[0],row[1],row[2])
    file.write(rowtxt)
    file.write('\n')
file.close()

#读取文件
files=open('191491531.txt',mode='r+')
files.seek(0,0)#从文件头开始
list=[]

#把文件数据存入列表
for line in files.readlines():
    line=line.replace('\n','')
    line=line.split(' ')
    list.append(line)
    #print(list)
files.close()

#画图
plt.rcParams['font.sans-serif'] = ['SimSun']#显示中文,否则生成的图中文字无法显示
xlabel = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]#x的标签
plt.title("191491531一周时间分配对比图",fontsize = 14)  #图标题,设置字体大小为14
plt.xlabel("Week",fontsize = 14)  #x轴的文本说明,设置字体大小为14
plt.ylabel("Time_Table(小时)",fontsize = 14)  # y轴的文本说明,设置字体大小为14

x = range(1,8)#x范围
#把时间数据存入相应列表,即y值的列表
y1=[]
for i in range(1,8):
    y1.append(int(list[i][0]))

y2=[]
for i in range(1,8):
    y2.append(int(list[i][1]))

y3=[]
for i in range(1,8):
    y3.append(int(list[i][2]))

plt.plot(x,y1,label=list[0][0],linewidth=1,color="red",linestyle="-.",marker="^",markersize=4)
plt.plot(x,y2,label=list[0][1],linewidth=1,color="blue",linestyle="-",marker="8",markersize=4)
plt.plot(x,y3,label=list[0][2],linewidth=1,color="green",linestyle="--",marker="s",markersize=4)

plt.xticks(x,xlabel) #设定x轴刻度显示为文本
plt.xlim(0,7) #设定x轴显示的区间
plt.ylim(0,24) #设定y轴显示的区间
plt.gca().yaxis.set_major_locator(MultipleLocator(1))#设置y轴间隔为1
plt.tick_params(labelsize=14)#设置坐标轴刻度大小为14
plt.grid(color="b",linestyle=":") #网格样式
plt.legend() #加载图例
plt.savefig('191491531.pdf') #保存图片
plt.show() #显示图片"""

你可能感兴趣的:(python,python,numpy,机器学习)