Python --实现画红绿灯分布图(汽车启停系统的学习过程中的记录)

Python --实现画红绿灯分布图(汽车启停系统的学习过程中的记录)

实现画出S-T图像的红绿灯的分布,代码如下:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
import matplotlib.pyplot as plt
#读取x轴坐标和y轴坐标
n = []#x轴坐标
m = []#y轴坐标
f = open("C://Users//CZY//Desktop//date1.txt")
line = f.readline()
while line:a ,b = line.split()n.append(a)m.append(b)line = f.readline()
f.close()
# string型转int型
n = [int(n) for n in n if n]
m = [int(m) for m in m if m]
#
plt.figure()
plt.ylabel('S(m)', size=10)
plt.xlabel('T(s)', size=10)
plt.title('Traffic light map', size=20)
plt.xlim((0, n[0]))
plt.ylim((0, m[0]))
k = []  #距离
x = []  #第一个灯的颜色,绿灯0,红灯2
y = []  #绿灯时长
z = []  #红灯时长
cl = ['#008000', '#FFFF00', "r"]#绿黄红的颜色值
f = open("C://Users//CZY//Desktop//date.txt")
line = f.readline()
while line:c, d, e, g = line.split()k.append(c)x.append(d)y.append(e)z.append(g)line = f.readline()
f.close()
# string型转int型
k = [int(k) for k in k if k]
x = [int(x) for x in x if x]
y = [int(y) for y in y if y]
z = [int(z) for z in z if z]i = 0 #红绿灯的总条数
a = 0 #灯的持续时长
#开始画红绿灯
while i < len(k):  #判断总的红绿灯的个数sum = n[0] #总时长l = 0 #经过时长的初值while sum > 0:      #while循环判断该位置的线是否画完if(x[i] == 0):     #if判断目前是什么颜色的灯a = y[i]elif(x[i] == 1):a = 3else:a = z[i]s = l + a #经过时长的末值plt.hlines(k[i], l, s, colors = cl[x[i]], linestyles = "-")#画线l = l + asum = sum - ax[i] = (x[i] + 1) % 3 #变换成下一个灯的颜色i = i + 1
plt.savefig('C://Users//CZY//Desktop\ test.png')
plt.show()

运行结果如下图:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部