import csv
import cv2 as cv
import numpy as np
# filePath = 'F:/zhengwangwork/test csv/6.csv'
filePath = input("请输入处理文件存放的位置:")
def readcsv():
# file = open("D:/Work/csv/31.csv")
filename=input("请输入要读取文件路径:")
# file = open("F:/黄姐软件截图/301-轨腰伤损/csvFile/1.csv")
file = open(filename)
reader = csv.reader(file)
data = []
data1 = []
data2 = []
data3 = []
data4 = []
data5 = []
a = []
# 读取文件数据列
for row in reader:
# column = eval(row[0])
column = row[0]
# min=min(column)
column1 = row[1]
column2 = row[2]
column3 = row[3]
column4 = row[4]
column5 = row[5]
data.append(column)
data1.append(column1)
data2.append(column2)
data3.append(column3)
data4.append(column4)
data5.append(column5)
# 求取第一列的最小值并相减输出
q = min(data)
data = [eval(i) - eval(q) for i in data]
# print(data)
# 将数据列重新写入csv文件中
# filePath = 'F:/zhengwangwork/test csv/6.csv'
rows = zip(data, data1, data2, data3, data4, data5)
with open(filePath, "w", newline='') as f:
writer = csv.writer(f)
for row in rows:
writer.writerow(row)
def drawpicture():
# (233,1600,3)分别是宽、高、通道数
canvas = np.zeros((233, 1600, 3), dtype=np.uint8) + 255
file = open(filePath) # 打开csv文件
reader = csv.reader(file) # 读取csv文件
data = list(reader) # 将csv数据转化为列表
length_h = len(data) # 得到数据行数
lenght_l = len(data[0]) # 得到每行长度
x = list()
y = list()
z = list()
# 绘制散点图
for i in range(0, length_h): # 从第一行开始读取
x.append(int(eval(data[i][0]))) # 将第一列数据从第一行读取到最后一行付给列表x
y.append(eval(data[i][2])) # 将第三列数据从第一行读取到最后一行付给列表y
z.append(eval(data[i][1]))
pts = zip(x, y)
print(x)
print(y)
col = []
colors = [(255, 255, 255), (255, 255, 255), (160, 32, 240), (255, 255, 0), (255, 0, 0), (255, 0, 0),
(255, 0, 0), (255, 255, 0), (0, 255, 255), (192, 192, 192), (135, 206, 236),
(56, 94, 15), (255, 0, 0), (255, 255, 255), (255, 255, 255), (160, 32, 240),
(255, 255, 255), (255, 255, 0), (0, 255, 0), (255, 0, 0), (255, 255, 255)]
# # 通过循环将不同的通道值对应的颜色加到col数组中,其中data1就是db数组
for i in range(0, len(z)):
col.append(colors[z[i]])
i = 0
# 画出每个点,颜色随机
for pt in pts:
cv.circle(canvas, pt, 2, col[i], -1)
i = i + 1
# 展示绘制的图形
cv.namedWindow('Basic Graph', cv.WINDOW_NORMAL)
cv.imshow('Basic Graph', canvas)
# 保存绘制的图像
cv.imwrite('Basic_Graph.png', canvas)
cv.waitKey()
if __name__ == '__main__':
readcsv()
drawpicture()